//定义一个玩家vec vector<CPlayer*> vec; vector<玩家ID> vec1; //玩家map 拷贝入玩家vec for( Map_Player_it it = m_mapPlayer.begin(); it != m_mapPlayer.end(); it++) { CPlayer* pPla = it->second; for( 伙伴Map_it it1 = pPla->伙伴Map.begin(); it1 != pPla->伙伴.end(); it1++) { 伙伴类* pTemp = it1->second; if (pTemp) { vec.push_back(pTemp); vec1.push_back(it->first ); } } } //排序 for (unsigned int i = 0 ; i < vec.size()-1; i++) { for (unsigned int j = 0; j < vec.size()-(i+1); j++) { //根据玩家等级排序 //大于或者小于 决定升幂或者降幂 if (vec[j]->lev > vec[j+1]->lev) { CPlayer* tempPlayer = vec[j+1]; vec[j+1] = vec[j]; vec[j] = tempPla; int tempID = vec[j+1]; vec1[j+1] = vec1[j]; vec1[j] = tempID; } } } //取值 for (unsigned int i = 0 ; i < vec.size() ; i++) { 伙伴类 = vec[i]; 玩家ID = vec1[i]; 玩家类 = 玩家map.find(玩家ID); }
原文:http://blog.csdn.net/callchunli/article/details/19642479