Player *playerOne = new Player("player one");
Player *playerTwo = new Player("player two");
Player *playerThree = new Player("player three");
Player *playerFour = new Player("player four");
Player *playerFive = new Player("player five");
Player *playerSix = new Player("player six");
//可用用来存放指针类型和值类型
vector<Player *> vcPlayer; //内存中是连续存储的,(元素的排列次序与元素值无关,而是由元素添加到容器的次序决定的)
vcPlayer.push_back(playerOne);
vcPlayer.push_back(playerTwo);
vcPlayer.push_back(playerThree);
vcPlayer.push_back(playerFour);
vcPlayer.push_back(playerFive);
vcPlayer.push_back(playerSix);
vcPlayer.erase(vcPlayer.begin()+1); // 删除指定元素
//第一种遍历方法
for(vector<Player *>::iterator iter = vcPlayer.begin(); iter != vcPlayer.end(); iter++)
{
Player *player = *iter;
player->showName();
}
//第二种遍历方法
for(int i = 0 ; i < vcPlayer.size(); i++)
{
Player *player = vcPlayer[i];
player->showName();
}
vcPlayer.clear(); //删除所有元素
printf("size:%d\n",vcPlayer.size());
printf("--------------list begin-----------\n");
//可用存放指针和值,(元素的排列次序与元素值无关,而是由元素添加到容器的次序决定的)
list<Player *> listPlayer;
listPlayer.push_back(playerOne);
listPlayer.push_back(playerTwo);
listPlayer.push_back(playerThree);
listPlayer.push_back(playerFour);
listPlayer.push_back(playerFive);
listPlayer.push_back(playerSix);
listPlayer.remove(playerFour); //删除一个元素
for (list<Player *>::iterator iter = listPlayer.begin(); iter != listPlayer.end(); iter++)
{
Player *player = *iter;
player->showName();
}
listPlayer.pop_back(); //删除最后一个元素
Player *player = listPlayer.back(); //取最后一个元素的值,不会删除
player->showName();
printf("-------------map begin-----------------\n");
map<int, Player *> mapPlayer;
mapPlayer[0] = playerOne;
mapPlayer[1] = playerTwo;
mapPlayer[2] = playerThree;
mapPlayer[3] = playerFour;
mapPlayer[4] = playerFive;
mapPlayer[5] = playerSix;
//方式一遍历
for(map<int,Player*>::iterator iter = mapPlayer.begin(); iter != mapPlayer.end(); iter++)
{
Player *player = iter->second;
player->showName();
}
//直接根据key取值
Player *mapPlayerOne = mapPlayer[0]; //如果key为int类型,那么可以直接通过key取value
playerOne->showName();
//根据key寻找
map<int,Player *>::iterator mapIter;
mapIter = mapPlayer.find(3);
if (mapIter != mapPlayer.end())
{
Player * player = mapIter->second;
player->showName();
}
mapPlayer.erase(2); //根据key删除一个元素
map<string, Player *> strMap;
strMap.insert(make_pair("one", playerOne));
strMap.insert(make_pair("two", playerTwo));
strMap.erase("one"); //根据key删除一个元素
for(map<string,Player*>::iterator iter = strMap.begin(); iter != strMap.end(); iter++)
{
Player *player = iter->second;
player->showName();
}