Blue Sky! 2009. 7. 22. 10:25

๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ ฌํ•˜๋‹ค ๋ณด๋‹ˆ..
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);