C++:容器list

list(双向链表)

头文件:#include <list>

双向链表容器,对于添加删除操作特别高效,对于查找操作为**O(n)**的时间复杂度
不可随机存储元素,不可使用[]和at()

采用模板类实现,其默认构造形式:list<T> lis;

函数部分:

lis.push_back(num);//往容器尾部加入一个元素
lis.pop_back();//删除容器尾部最后一个元素
lis.push_front(num);//往容器头部加入元素
lis.pop_front();//删除容器头部元素

lis.front();//返回第一个元素
lis.back();//返回最后一个元素

list(n,num);//构造函数将n个num值拷贝给自身
list(const list &lis);//拷贝构造函数
list &operator=(const list &lis);//重载等号操作符

lis.assign(beg.end);//将[beg,end)区间中的数据拷贝赋值给本身,区间为左闭右开
lis.assign(n,num);//将n个num元素拷贝赋值给自身
lis.swap(lst);将lst与本身元素进行互换

lis.size();//返回容器中元素个数
lis.empty();//判断容器中是否为空
lis.resize(num);//重新指定容器长度为num,如果容器变长则以默认值填充新位置,如果容器变短则超出长度被删除
lis.resize(num,elem);//重新指定容器长度为num,如果容器变长则以elem填充新位置,如果容器变短则超出长度被删除

lis.insert(pos,num);//在pos位置插入num元素,返回新数据位置,注意返回值是iterator
lis.insert(pos,n,elem);//在pos位置插入n个elem元素,无返回
lis.insert(pos,beg,end);//在pos位置插入[beg,end)区间元素,无返回

lis.clear();//删除容器所有数据
lis.erase(beg,end);//删除区间[beg,end)的数据,返回下一个位置,返回值是iterator,同时区间为左闭右开
lis.erase(pos);//删除pos位置的数据,返回下一个位置,返回值是iterator
its.remove(num);//删除容器中所有与num匹配的元素;

reverse();//反转链表,库函数,其他的顺序容器也可以调用,如vector

lis.max_size();//返回list能容纳的最大元素
list.sort();//给list排序
list.unique();//删除list中重复元素

迭代器

lis.begin();//返回容器中第一个元素的迭代器
lis.end();//返回容器中最后一个元素后一位(外空间)的迭代器
lis.rbegin();//返回容器中倒数第一个元素的迭代器
its.rend();//返回容器中倒数最后一个元素的后面一位(外空间)的迭代器

顺序容器到一段落,下次更新关联容器

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值