C++学习笔记—LIst类函数

Emmmm...总看学习的word有点麻烦...云保存到csdn方便点吧....

 转载于....计算机老师的文件。。

push_back(elem);//在容器尾部加入一个元素

pop_back();//删除容器中最后一个元素

push_front(elem);//在容器开头插入一个元素

pop_front();//从容器开头移除第一个元素

insert(pos,elem);//在pos位置插elem元素的拷贝,返回新数据的位置。

insert(pos,n,elem);//在pos位置插入n个elem数据,无返回值。

insert(pos,beg,end);//在pos位置插入[beg,end)区间的数据,无返回值。

clear();//移除容器的所有数据

erase(beg,end);//删除[beg,end)区间的数据,返回下一个数据的位置。

erase(pos);//删除pos位置的数据,返回下一个数据的位置。

remove(elem);//删除容器中所有与elem值匹配的元素。

尾插 --- push_back

尾删 --- pop_back

头插 --- push_front

头删 --- pop_front

插入 --- insert

删除 --- erase

移除 --- remove

清空 --- clear

 

List的构造函数和析构函数

list<Elem> c

产生一个空list,其中没有任何元素

list<Elem> c1(c2)

产生另一个同型list的副本(所有的元素都被拷贝)

list<Elem> c(n)

利用元素的default构造函数产生一个大小为n的list

list<Elem> c(n,elem)

产生一个大小为n的list,每个元素值都是elem

list<Elem> c(beg, end)

产生一个list,以区间[beg, end)做为元素初值

c.~list<Elem>()

销毁所有元素,并释放内存

list的非变动性操作

c.size()

返回容器的大小

c.empty()

判断容器是否为空,等价于size()==0,但可能更快

c.max_size()

返回容器最大的可以存储的元素

reserve()

如果容量不足,扩大之

c1 == c2

判断c1 是否等于c2

c1 != c2

判断c1是否不等于c2

c1 < c2

判断c1 是否小于c2

c1 > c2

判断c1 是否大于c2

c1 <= c2

判断c1是否小于等于c2

c1 >= c2

判断c1是否大于等于c2

list的赋值操作

c1 = c2

将c2的全部元素赋值给c1

c.assign(n, elem)

复制n个elem,复制给c

c.assign(beg, end)

将区间[beg;end)内的元素赋值给c

c1.swap(c2)

将c1和c2元素互换

swap(c1,c2)

同上,此为全局函数

list元素之间存取

c.front

返回第一个元素,不检查元素存在与否

c.back

返回最后一个元素,不检查元素存在与否

list迭代器相关函数

c.begin()

返回一个双向迭代器,指向第一个元素

c.end()

返回一个双向迭代器,指向最后一个元素的下一个位置

c.begin()

返回一个逆向迭代器,指向逆向迭代的第一个元素

c.end()

返回一个逆向迭代器,

指向逆向迭代的最后一个元素的下一个位置

list安插、移除操作函数

c.insert(pos, elem)

在迭代器pos所指位置上安插一个elem副本,

并返回新元素的位置

c.insert(pos,n,elem)

在pos位置上插入n个elem副本,无返回值

c.insert(pos,beg,end)

在pos位置上插入区间[beg,end)内的所有元素的副本

没有返回值

c.push_back(elem)

在尾部添加一个elem副本

c.pop_back()

移除最后一个元素,无返回值

c.push_front()

在头部添加一个elem副本

c.pop_front()

移除第一个元素,但不返回

c.remove(val)

移除所有其值为val的元素

c.remove_if()

c.erase(pos)

移除pos位置上的元素,返回下一个元素的位置

c.erase(beg, end)

移除[beg, end)区间内的所有元素,

返回下一个元素的位置

c.resize(num)

将元素数量改为num(如果size()变大了,

多出来的新元素都需以default构造函数完成)

c.resize(num,elem)

将元素数量改为num(如果size()变大了,

多出来的新元素都elem的副本)

c.clear()

移除所有元素,将容器清空

备注:安插和移除元素,都会使“作用点”之后的各个元素的iterator等失效,若发生内存重新分配,该容器身上的所有iterator等都会失效

List的特殊变动性操作

c.unique()

如果存在若干相邻而数值相等的元素,就移除重复元素,留下一个

c.unique(op)

如果存在若干相邻元素,都使op()的结果为ture,

则移除重复元素,只留下一个。

c1.splice(pos, c2)

将c2内的所有元素转移到c1之内,迭代器pos之前

c1.splice(pos, c2, c2pos)

将c2内的c2pos所指元素转移到c1之内的pos所指位置上

(c1,c2可相同)

c1.splice(pos, c2,

         c2beg,c2end)

将c2内的[c2beg,c2end)区间内所有元素转移到

c1内的pos之前(c1,c2可相同)

c.sort()

以operator<为准则,对所有元素排序

c.sort(op)

以op()为准则,对所有元素排序

c1.merge(c2)

假设c1和c2容器都包含已序(相同的排序方式)元素,将c2的全部元素转移到c1,并保证合并后的list还是已序。

c1.merge(c2,op)

假设c1和c2容器都包含op()原则下的已序(相同的排序方式)元素,将c2的全部元素转移到c1,并保证合并后的list在op()原则仍是已序。

c.reverse()

将所有元素反序

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值