luce in altisBLUE SKY

category Photo

Blog


[STL] Vector 정렬..

데이터를 정렬하다 보니..
Map 의 Value Sort가 필요하게 되었다.

기억하기론 Map은 Key정렬이라 다른 컨테이너가 필요하다는걸 기억했지만..
혹시나 다른 방법이 있을까, 현업에 있는 녀석한테도 물어보고 구글링도 해보았지만

역시나~! 기존 방법으로 가야했다 -ㅅ-

일단 임시 Vector 변수를 선언하고;;

vector<Temp> CityIDVector; // 정렬을 위한 임시 벡터


정렬을 위해 임시 클래스를 생성.

typedef class _Temp{
public:
 int CityID;
 int Demand;
public:
 int getInt( void){
  return Demand;   // 수요 인자를 기준으로 정렬
 }
 void putInt( int a, int b){
  CityID = a;
  Demand = b;  
 }
}Temp;


다음과 같은 함수를 만들어 두 원소를 비교한다.

bool CompareTemp(Temp first, Temp second)
{
 return first.getInt() > second.getInt();
}


그 다음은 Map의 Value 값을 떼어 놓아 다음과 같이 Vector에 넣어 주었다.

Temp Col;

Col.putInt((*it).second->st_iCityID,(*it).second->st_iPistolDemand);

CityIDVector.push_back( Col );

마지막으로 Sort를 다음과 같이 시행하면 끝~

// 수요 순으로 내림차순 정렬한다.
std::sort(CityIDVector.begin(),CityIDVector.end(),CompareTemp);

'게임 > 프로그래밍' 카테고리의 다른 글

2017 언리얼 서밋 프리미엄  (0) 2017.10.31
자신의 컴퓨터가 듀얼 코어 이상이라면...  (0) 2009.08.26
이놈의 LUA..  (0) 2009.06.26
GPU Gems가 온라인으로 공개됨.  (0) 2009.06.10
라이센스 이야기  (0) 2009.02.20