容器 - list列表

  • List是一个双向链表,因此它的内存空间可以不连续,通过指针进行数据访问。
  • List的随机访问效率比较低,因此list没有提供[ ]运算符的重载。
  • List可以很好的支持任意地方的插入和删除操作,只需要移动指针即可。
  • 列表定义在<list>头文件中。

列表类成员函数

//----迭代器iterators----
iterator begin(); //迭代器指向第一个元素
iterator end();   //迭代器指向最后一个元素后面的位置
reverse_iterator rbegin(); //迭代器指向最后一个元素
reverse_iterator rend();   //迭代器指向第一个元素前面的位置
//----容量capacity----
bool empty();     //测试是否为空表
size_type size(); //返回列表长度
size_type max_size(); //返回列表能容纳的最大长度
void resize(size_type sz, T c=T()); //重置列表长度为sz,c填充到扩充元素中
//----元素存取element access----
front(); //返回表头元素
back();  //返回表尾元素
//----列表调节器modifiers----
void assign(size_type n, const T& u); //列表赋n个均为u的值
void push_front(const T& x);   //插入一个元素到表头
void pop_front(); //删除表头元素
void push_back(const T& x);    //增加一个元素到表尾
void pop_back();  //删除表尾元素
//在列表pos处插入n个元素值x,pos从 1 起
void insert(iterator pos, size_type n, const T& x);
iterator erase(iterator pos);  //删除列表指定位置的元素,pos从 1 起
void swap(list<T, Allocator>& lst);  //与列表lst互换元素
void clear();    //清空列表
//----列表运算operations----
void remove(const T& value);   //删除列表中值与value相同的所有元素
void remove_if(Predicate pred); //删除列表满足条件的元素
void unique();   //删除列表重复值
void merge(list<T, Allocator>& x);   //合并列表x,列表必须有序才可以合并
void sort();     //列表排序
void sort(Compare comp); //列表按comp关系比较排序
void reverse();  //列表逆序,注意仅仅是逆序,不是逆序排列

列表应用简单实例

  • 通过成员函数可以看到,list就是一个双向的链表。
  • 基本功能就包括生成结点、插入结点、删除结点、查找结点等。
list<char> newlist;
newlist.push_back('a');
newlist.push_back('c');
// Use iterator to find character.
list<char>::iterator Findstr;
Findstr = find(newlist.begin(), newlist.end(), 'c');
// It means no find. end refer to the next to the last element in the last.
if (Findstr == newlist.end()) cout << "No find.";
else cout << "  " << * Findstr;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值