STL链表-list-创新互联

list为STL提供的标准容器之一,又称为列表,他是基于双向循环链表实现的。

成都创新互联公司专注于爱民企业网站建设,响应式网站建设,成都商城网站开发。爱民网站建设公司,为爱民等地区提供建站服务。全流程按需策划,专业设计,全程项目跟踪,成都创新互联公司专业和态度为您提供的服务文件声明
#include
list对象的创建以及初始化方法与vector基本类似,例如:
listli(10, 5);//创建包含10个值都为5的datatype型list对象
listli1{ 2,3,4 }; //创建包含3个元素的list对象,元素值分别为2,3,4

对vector对象的操作大多数适用于list对象,除了与容量有关的函数(capacity(),reserve()等)以及将下标作为参数的函数(at()等)。

另外,list对象还有一些独有的操作
li.push_front(4); //在li的表头插入一个元素
li.pop_front(); //删除li的第一个元素
li.unique(); //将相邻且相等的元素只保留一个
li1.reverse(); //将li1中的所有元素的位置前后颠倒
li.merge(li1); //将li1中的所有元素添加到li的后面,并清空li1
li.merge(li1, greater()); //将li1中的所有元素添加到li的前面,并清空li1
li.remove(5); //删除li中所有值为5的元素

li.remove_if(begin, end, p);
//begin、end: 容器的范围迭代器,表示在这个范围内移除
//p:谓词参数,remove_if会移除谓词参数为true的元素

举例1:
// ispunct 检查是否为标点符号的可调用函数
remove_if(word.begin(), word.end(), ispunct);

举例2:
bool isEven(int n){
    return !(n&1);
}
li.remove_if(isEven); //删除li中的所有偶数

其中 remove_if 的参数为函数指针(回调函数),回调函数的功能是限定删除元素的条件,不同的回调函数可以实现不同的删除操作,从而增加了应用的灵活性。

遍历list对象 
void traverse(listli)
{
	for (list::iterator it = li.begin(); it != li.end(); it++)
		cout<< *it<< " ";

	cout<< endl;
}

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网站标题:STL链表-list-创新互联
链接分享:http://myzitong.com/article/jehpd.html