11/7/7 list

列表容器 list<T> 定义在头文件 < list > 中

列表容器是一个双向链表,其迭代器类型是双向迭代器,只能递增或者递减

sort()

正是由于是双向迭代器,所以标准库的 <algorithm> 的 sort() 函数不实用与列表容器

列表容器自定义了 sort() 函数,有一个参数,参数类型是谓词,默认为 less<T>() ,故默认列表的 sort() 使用“<”以升序排列

构造函数:

列表的声明与矢量和双端队列的声明一致,构造函数也类似

list<T> data( int , T )  第一参指定元素个数,第二参指定初始元素默认值

list<T> data( iter1 , iter2 ) 使用一个序列来初始化,第二参指向序列最后一个元素的下一位置

list<T> data( int ) 构造含第一参数个数的元素的空列表

size() 返回元素个数(不是最后一个元素下标)

resize() 重设元素个数,删去大于重设个数的,不足则以默认值补全

push_back() 后部插入

push_front() 头部插入

back() 返回尾元素

front() 返回头元素

insert() 多个版本的插入函数,与适量类似

clear() 清空列表元素

erase()

删除指定位置的元素

单迭代器参数版本:删除该迭代器所指位置的元素

双迭代器参数版本:删除该两迭代器所表示的序列

remove() 删除所有的关键字指定的元素

unique() 清除列表中相邻的重复元素

splice()

删除源列表中给定位置的元素,并插入目标列表的某个位置

四参数版本 (目标位置 , 源列表 , 起始 = begin() , 终止 = end())

特别注意: 该函数会删除源列表的被添加入目标位置的元素序列

易错点:当为三个参数时,表示从第三个迭代器参数到末尾的一个序列,而不是仅仅第三个迭代器所指的单个元素

merge()

merge( 源列表 , 谓词 = less<T>() ) 将源列表与目标列表合并,并按谓词方法排序

特别注意: 该函数会删除源列表的所有元素

列表指定位置迭代器的设置:

list<T>::iterator iter ;

for(int i=0 ; i < position ; i++)

        ++iter;

最终设置 iter 指向 下标为 position 的位置

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值