List容器(三)

List容器(三)

开发工具与关键技术:Visual Studio、C++
作者:张国军
撰写时间:2019年08月16日

list 与迭代器

#include  <iostream>
#include <list>
using  namespace std;
void main()
{
	//list.begin(); //返回容器中第一个元素的迭代器。
	//list.end(); //返回容器中最后一个元素之后的迭代器。
	//list.rbegin(); //返回容器中倒数第一个元素的迭代器。
	//list.rend(); //返回容器中倒数最后一个元素的后面的迭代器。
	list<int> lstInt;
	lstInt.push_back(1);
	lstInt.push_back(3);
	lstInt.push_back(5);
	lstInt.push_back(7);
	lstInt.push_back(9);
	for (list<int>::iterator it = lstInt.begin(); it != lstInt.end(); ++it)
	{
		cout << *it;
		cout << " ";
	}
	cout << endl;
	for (list<int>::reverse_iterator rit = lstInt.rbegin(); rit != lstInt.rend();
	++rit)
	{
		cout << *rit;
		cout << " ";
	}
}

在这里插入图片描述

void main()
{
   //list.insert(pos, elem); //在 pos 位置插入一个 elem 元素的拷贝,返回新数据的位置。
   //list.insert(pos, n, elem); //在 pos 位置插入 n 个 elem 数据,无返回值。
   //list.insert(pos, beg, end); //在 pos 位置插入[beg,end)区间的数据,无返回值。
   //注意:
   //在 3 号位置插入元素, 原来的 3 号位置变成 4 号位置 原来的 4 号位置变成 5 号位置
   //list 不能随机访问
   //it++; //list 只能逐个的进行访问
   // it = it + 3; // 不支持随机的访问容器
   list<int> lstA;
   list<int> lstB;
   lstA.push_back(1);
   lstA.push_back(3);
   lstA.push_back(5);
   lstA.push_back(7);
   lstA.push_back(9);
   lstB.push_back(2);
   lstB.push_back(4);
   lstB.push_back(6);
   lstB.push_back(8);
   cout << "-----------lstA---------" << endl;
   stackshow(lstA);
   cout << "-----------lstB---------" << endl;
   stackshow(lstB);
   lstA.insert(lstA.begin(), 11); //{11, 1, 3, 5, 7, 9}
   cout << "-------lstA.insert(lstA.begin(), 11);---------" << endl;
   stackshow(lstA);
   lstA.insert(++lstA.begin(), 2, 33); //{11,33,33,1,3,5,7,9}
   cout << "----------lstA.insert(++lstA.begin(), 2, 33);----------" << endl;
   stackshow(lstA);
   lstA.insert(lstA.begin(), lstB.begin(), lstB.end());
   cout << "-------lstA.insert(lstA.begin(), lstB.begin(), lstB.end());----------" << endl;
   stackshow(lstA);
   //{2,4,6,8,11,33,33,1,3,5,7,9}
}

在这里插入图片描述
list 的删除

void main()
{
	//list.clear(); //移除容器的所有数据
	//list.erase(beg, end); //删除[beg,end)区间的数据,返回下一个数据的位置。
	//list.erase(pos); //删除 pos 位置的数据,返回下一个数据的位置。
	//lst.remove(elem); //删除容器中所有与 elem 值匹配的元素。
	//删除区间内的元素
	//lstInt 是用 list<int>声明的容器,现已包含按顺序的 1, 3, 5, 6, 9 元素。
	list<int> lstInt;
	lstInt.push_back(1);
	lstInt.push_back(3);
	lstInt.push_back(2);
	lstInt.push_back(6);
	lstInt.push_back(9);
	stackshow(lstInt);
	list<int>::iterator itBegin = lstInt.begin();
	++itBegin;
	list<int>::iterator itEnd = lstInt.begin();
	++itEnd;
	++itEnd;
	++itEnd;
	lstInt.erase(itBegin, itEnd);
	cout << "----lstInt.erase(itBegin, itEnd);-----" << endl;
	stackshow(lstInt);
}

在这里插入图片描述
//删除容器中等于 3 的元素
lstInt.remove(3);
//删除 lstInt 的所有元素
lstInt.clear(); //容器为空

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值