C++ List 容器

C++ List 容器

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

list 是一个双向链表容器,可高效地进行插入删除元素。
list 不可以随机存取元素,所以不支持 at.(pos)函数与[]操作符。
使用list之前需要引用头文件:#include
//list 采用采用模板类实现, 对象的默认构造形式:list lstT; 如:
list lstInt; //定义一个存放 int 的 list 容器。
list lstFloat; //定义一个存放 float 的 list 容器。
list lstString; //定义一个存放 string 的 list 容器。
list 的赋值

#include  <iostream>
#include <list>
using  namespace std;
void stackshow(list<int>& s)
{
	for (list<int>::iterator it = s.begin(); it != s.end();it++)
	{
		cout << *it<<" ";
	}
	cout << endl;
}
void main()
{
	//list.assign(beg, end); //将[beg, end)区间中的数据拷贝赋值给本身。
	//注意该区间是左闭右开的区间。
	//list.assign(n, elem); //将 n 个 elem 拷贝赋值给本身。
	//list& operator=(const list &lst); //重载等号操作符
	//list.swap(lst); //将 lst 与本身的元素互换。
	list<int> lstIntA, lstIntB, lstIntC, lstIntD;
	lstIntA.push_back(1);
	lstIntA.push_back(3);
	lstIntA.push_back(5);
	lstIntA.push_back(7);
	lstIntA.push_back(9);
	lstIntB.assign(lstIntA.begin(), lstIntA.end()); //1 3 5 7 9
	lstIntC.assign(5, 8); //8 8 8 8 8
	lstIntD = lstIntA; //1 3 5 7 9
	lstIntC.swap(lstIntD);//将lstIntC容器元素和lstIntD容器元素交换
	cout << "----------lstIntA-----------"<<endl;
	stackshow(lstIntA);
	cout << "----------lstIntB-----------"<<endl;
	stackshow(lstIntB);
	cout << "----------lstIntC-----------"<<endl;
	stackshow(lstIntC);
	cout << "----------lstIntD-----------"<<endl;
	stackshow(lstIntD);
}

在这里插入图片描述
list 头尾的添加移除操作

void main()
{
	//list.push_back(elem); //在容器尾部加入一个元素
	//list.pop_back(); //删除容器中最后一个元素
	//list.push_front(elem); //在容器开头插入一个元素
	//list.pop_front(); //从容器开头移除第一个元素
	list<int> lstInt;
	lstInt.push_back(1);
	lstInt.push_back(3);
	lstInt.push_back(5);
	lstInt.push_back(7);
	lstInt.push_back(9);
	lstInt.pop_front();
	cout << "pop_front 1"<<endl;
	stackshow(lstInt);
	lstInt.pop_front();
	cout << "pop_front 2"<<endl;
	stackshow(lstInt);
	lstInt.push_front(11);
	cout << "push_front(11)"<<endl;
	stackshow(lstInt);
	lstInt.push_front(13);
	cout << "push_front(13)" << endl;
	stackshow(lstInt);
	lstInt.pop_back();
	cout << "pop_back() 1" << endl;
	stackshow(lstInt);
	lstInt.pop_back();
	cout << "pop_back() 2" << endl;
	stackshow(lstInt);
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值