您的位置:首页 > 其它

STL -- map--vector--排序

2014-02-21 22:15 351 查看
//定义一个玩家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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: