데이터를 정렬하다 보니..
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 |