list,vector,map的使用方法

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();
	}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值