list是一个双链表。

函数

描述

void l.assign (int n, const val)

void l.assign (it first, it last)

将链表l初始化为n个相同的val元素。

将链表l初始化为从first到last指针所指向的这一段区域内的元素。It指针同l是一个类型的。方便将另一个链表中的某一段连续的元素copy到新链表。

reference l.back ()

返回最后一个元素。经测试,可以直接l.back()=元素。

It l.begin()

返回第1个元素的地址。

Void l.clear()

清空链表。

bool l.empty()

判断链表中是否有元素,若有,返回true。

It l.end()

返回最后一个元素的下一个元素的地址,即此地址没有实际元素。

it l.erase (it pos);it l.erase (it first, it last);

删除链表中it指针所指向的元素,返回被删元素的下一个元素地址。

删除从first到last这一段的所有元素,返回最后一个被删元素的下一个元素地址。

reference l.front ()

返回第一个元素。假如a=l.front(),那么a只是一个备份,对a修改不影响链表。

get_allocator()

一直不知道此物何用?

it l.insert (it pos, 元素类型val)

void l.insert (it pos, int n,元素类型 val)

void l.insert (it pos, it first, it last)

在pos的前一位置插入val元素,返回该元素的地址。Val元素是不会被修改的,只是拷贝。

在pos的前一位置插入n个val元素。

在pos的前一位置插入first到last之间的一段元素。可以是自己或其他链表中的。

int l.max_size()

返回链表可装入的元素数量上限,一般数字很大。经测,数字已包含了链表中存在的元素。

void l.merge (list& x)

void l.merge (list& x, Compare comp)

将链表x接在l之后,合并为一个链表l,合并完后链表x中的元素为0了,但x仍存在。(不排序)

将两链表合并在一起,按照comp函数的排序规则来排序。

list& l.operator= (const list& x)

将整个链表x中所有元素赋给链表l,相当于清空链表l,再将x赋过去。不改变x的数据。注意括号内是参数x。

void l.pop_back()

删除链表最后一个元素。

void l.pop_front()

删除链表第一个元素。

void l.push_back (const value_type& val)

将元素val插入到链表的尾部。

void l.push_front (const value_type& val)

将元素val插入到链表的头部。

it l.rbegin()

返回“反向链表”的第1个元素的地址。即返回链表的最后一个元素的地址。

void l.remove (const value_type& val)

删除值等于val的元素,得一模一样才能删除,估计比对的是整块内存的二进制。与erase不同。

void l.remove_if (Predicate pred)

功能:删除元素。将链表中每个元素单独传入pred函数,只要返回的结果为true,就删除。pred不用加括号,它类似于sort里的comp。

it l.rend()

返回“反向链表”的最后一个元素的下一个位置,这么说可能不正确,这个函数主要用于反向链表的操作。返回的是地址,该地址没有元素。

void l.resize (size_type n, value_type val = value_type())

重新设置链表的元素个数,若大了,会插入默认元素,若少了,或者删除部分元素。标准是已存元素。

Void l.reverse()

将所有元素的顺序置为相反,比如升序变为降序。

Int l.size()

返回已存在的元素个数,如果之前刚调用过resize,那size的大小就是resize所设置的。

Void l.sort(comp)

Void l.sort()

排序,按照comp函数所返回的那样,若true则不改变位置,若false则交换位置。

排序,按照默认的方法排序,一般为增序,比如整数、字符串比较的是ascii码。

void l.splice (it pos, list& x)

void l.splice (it pos, list& x, it i)

void l.splice (it pos, list& x, it first, it last)

将链表x中所有的元素“剪切”到pos处,其实只是指针操作,不用赋值。

将链表x中的元素i“剪切”到pos处,只是单个元素。

将链表x中first到last这段元素都迁移到l中的pos处。

这些操作都会在链表l中增加新元素,并在x中删除相应元素。

void l.swap (list& x)

将两个链表互换名字,元素数量可不同,但类型得相同。

void l.unique()

void l.unique (Predicate pred)

删除重复的多余元素,使每个元素唯一。相同元素的第一个都不会删。

以pred函数为依据,删除重复的元素,当pred返回true时则删除其中一个。

bool operator== (list<T,Alloc>& lhs,list<T,Alloc>& rhs);

bool operator!= ( list<T,Alloc>& lhs, list<T,Alloc>& rhs);

bool operator<  (list<T,Alloc>& lhs,list<T,Alloc>& rhs);

bool operator<= (list<T,Alloc>& lhs, list<T,Alloc>& rhs);

bool operator>  (list<T,Alloc>& lhs, list<T,Alloc>& rhs);

bool operator>= ( list<T,Alloc>& lhs, list<T,Alloc>& rhs);

一堆不常用的符号。直接比较,比如a==b。

void swap (list<T,Alloc>& x, list<T,Alloc>& y)

交换两个链表。与l.swap是一样的效果。

c++ STL list容器成员函数的更多相关文章

  1. c++ STL stack容器成员函数

    这是后进先出的栈,成员函数比较简单,因为只能操作栈顶的元素.不提供清除什么的函数. 函数 描述 bool s.empty() 栈是否为空(即size=0).若空,返回true,否则,false. vo ...

  2. c++ STL map容器成员函数

    map容器用于查找,设置键值和元素值,输入键值,就能得到元素值.map对象中的元素时刻都是有序的,除非无序插入的.它是用平衡树创建的.查找很快. 函数 描述,注意有r的地方都是不能用it代替的. ma ...

  3. c++ STL deque容器成员函数

    deque是双向队列,即可以在头部插入删除,也可以在尾部插入删除.内部并不连续,这一点和vector并不一样.可能第1个元素和第2个元素的地址是不连在一起的.在使用时用it迭代器会安全一点. 这是c+ ...

  4. STL容器 成员函数 时间复杂度表

    Sequence containers Associative containers   Headers <vector> <deque> <list> <s ...

  5. c++ stl容器set成员函数介绍及set集合插入,遍历等用法举例

    c++ stl集合set介绍 c++ stl集合(Set)是一种包含已排序对象的关联容器.set/multiset会根据待定的排序准则,自动将元素排序.两者不同在于前者不允许元素重复,而后者允许. 1 ...

  6. STL区间成员函数及区间算法总结

    STL区间成员函数及区间算法总结 在这里总结下可替代循环的区间成员函数和区间算法: 相比单元素遍历操作,使用区间成员函数的优势在于: 1)更少的函数调用 2)更少的元素移动 3)更少的内存分配 在区间 ...

  7. C++STL(vector,map,set,list)成员函数整理

    / *最近ACM比赛,用到的时候忘记成员函数了,贼尴尬,给以后比赛做下准备 */ LIST: 构造函数 list<int> c0; //空链表 list<int> c1(3); ...

  8. STL进阶--成员函数 vs 算法

    容器的成员函数 vs 算法 容器中同名的函数 List: void remove(const T); template<class Comp> void remove_if(Comp); ...

  9. STL容器能力一览表和各个容器操作函数异常保证

    STL容器能力一览表 Vector Deque List Set Multiset map Multimap 典型内部 结构 dynamic array Array of arrays Doubly ...

随机推荐

  1. Vue 学习文档

    Vue 学习文档 vue 起步 引包 启动 new Vue(options) options: el 目的地(可以用类名.标签名等,也可以直接用mod元素) #elementId .elementCl ...

  2. kolla制作过程中:neutron-sfc-agent 报错的问题

    在使用二进制方式编译镜像的时候,neutron的sfc-agent提示如下错误ERROR:kolla.image.build:neutron-sfc-agent Failed with status: ...

  3. 转发:php解决高并发

    php解决高并发(转发:https://www.cnblogs.com/walblog/articles/8476579.html) 我们通常衡量一个Web系统的吞吐率的指标是QPS(Query Pe ...

  4. (四)从输入URL到页面加载发生了什么

    一.从输入URL到页面加载发生了什么 1.在浏览器中输入URL 如:https://www.cnblogs.com/loveapple/ URL分成协议.地址.路径三部分 协议:http.https. ...

  5. 洛谷P2184 贪婪大陆

    题目背景 面对蚂蚁们的疯狂进攻,小FF的\(Tower\) \(defence\)宣告失败--人类被蚂蚁们逼到了\(Greed\) \(Island\)上的一个海湾.现在,小FF的后方是一望无际的大海 ...

  6. 从输入URL到浏览器显示页面

    去看经典是不会错的,如果觉得太长,那就休息一下继续看. 经验告诉我,读一篇经典足矣,不要浪费时间去搜索其他地方到处复制粘贴的博文. 所以奉上我过滤的经典: 1.How browser work 2.h ...

  7. 找出list中的不同元素、删除两个list中相同的对象

    package com.test; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; ...

  8. POJ1014 Dividing

    题目来源:http://poj.org/problem?id=1014 题目大意: Marsha和Bill拥有一些弹珠.但是这些弹珠的价值不一样.每个弹珠的价值都是1到6之间的自然数.他们希望把这些弹 ...

  9. 分别使用http,express,koa请求第三方接口

    今天又再次恶补了一下http的内容,确切地说是node.js里面的http的内容,啊,百度了半天express怎么请求第三方接口,结果发现自己买的入门书籍都有这个内容.舍近求远,我真是醉了.还有百度上 ...

  10. 外键约束 foreign key

    外键约束 :保持数据一致性,完整性实现一对多关系.外键必须关联到键上面去,一般情况是,关联到另一张表的主键 (因为一个表只存一类信息.用外键来做参照,保证数据的一致性,可以减少数据冗余) ##表acr ...