C++容器之链表list

list的头文件和命名空间

#include<list>
using namespace std;

list的定义

list是动态链表,跟vector一样,是个类模板

list<int>list_int;  //定义了一个内部元素是int的链表
list<char>list_char;  //定义了一个内部元素是char的链表;
list<CString>list_student;  //定义了一个内部元素是Cstring的链表
list<char*>list_pchar;  //定义了一个内部元素是char*的链表

list的初始化

#include<list>
using namespace std;
int main(int argc,char* argv[])
{
	list<int> one;  //定义一个空的,元素类型是int的list链表
	list<int>two(4,100);  //定义一个包含4个元素,每个元素的值都是100de list链表
	list<int>three(two.begin(),two.end());使用two这个对象的迭代器,从开始到结束的所有元素来初始化当前变量
	list<int>four(three);  //使用three这个对象初始化当前对象
	int myints[] = {16,2,77,29};
	list<int>five(myints,myints+sizeof(myints)/sizeof(int));//使用一个普通的int数组来初始化当前对象
	
	return 0;
}

list的常用基本操作

list<int>list_int;
①list_int.size();   //返回list链表元素的总个数
②list_int.front();  //返回list_int链表的第一个元素的值
③list_int.back();  //返回list_int链表的最后一个元素的值
④list_int.clear();  //清空list_int的链表,把里面的所有元素删除
⑤list_int.begin();  //返回list_int链表第一个数的迭代器
⑥list_int.end();  //返回list_int链表最后一个数的迭代器
⑦list_int.empty();   //判断list_int链表是否为空
⑧list_int.swap(v1);  //v1是另一个动态链表,将list_int 和v1两个链表的元素互换
⑨list_int.reverse();   //把list中的元素顺序倒转
⑩list_int.sort();  //给list排序
a list_int.splice(list_int.begin(),list_2);  //将两个list合并

list的动态插入

list支持的动态插入也有多种方式

①调用push_back在尾部插入一个元素,只能一个一个的插入:list_int.push_back(3);
②调用push_front在头部插入一个元素,只能一个一个的插入:list_int.push_front(2);
③调用insert在第一个元素的前面插入一个元素,list_int.insert(list_int.begin(),888);
④调用insert在第一个元素的前面插入3个888元素,list_int.insert(list_int.begin(),3,888);
list<int>list_int,list_2;
list_int.push_back(0);
list_int.push_back(1);
list_int.push_back(3);

list_2.push_back(2);
list_2.push_back(5);
list_2.push_back(6);
list_int.insert(list_int.begin(),list_2.begin(),list_2.end());

int sz_int[] = {4,7,9};
list<int>::iterator itor = list_int.begin();
itor++;
list_int.insert(itor,sz_int+3);

list的遍历

①、list_int.pop_back();  //删除list_int动态链表的最后一个元素
②、list_int.erase(list_int.begin());   //删除第一个元素
③、list_int.erase(itor,list_int.end());  //删除中间的元素

list的遍历

因为list不是数组,所以不能使用下标进行遍历,只能使用迭代器进行遍历

for(list<int>::iterator itor = list_int.begin();itor !=list_int.end();++itor)
{
	int value =*itor;
	cout<<"value="<<value<<endl;
}
	
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值