List 使用帮助:
(一)常用函数:包含#include<list>
push_back() 在list的末尾添加一个元素
push_front() 在list的头部添加一个元素
pop_back() 删除最后一个元素
pop_front() 删除第一个元素
assign() 给list赋值
back() 返回最后一个元素
begin() 返回指向第一个元素的迭代器
clear() 删除所有元素
empty() 如果list是空的则返回true
end() 返回末尾的迭代器
erase() 删除一个元素
front() 返回第一个元素
get_allocator() 返回list的配置器
insert() 插入一个元素到list中
max_size() 返回list能容纳的最大元素数量
merge() 合并两个list
rbegin() 返回指向第一个元素的逆向迭代器
remove() 从list删除元素
remove_if() 按指定条件删除元素
rend() 指向list末尾的逆向迭代器
resize() 改变list的大小
reverse() 把list的元素倒转
size() 返回list中的元素个数
sort() 给list排序
splice() 合并两个list
swap() 交换两个list
unique() 删除list中重复的元素
(二)常用函数代码实现:
#include <list>
#include <iostream>
using namespace std;
int main()
{
//list声明
list<int> list1; //size = 0,声明1个空列表
list<int> list2(5); //size = 5,声明有5个元素的列表
list<char> list3(5); //size = 5,声明有5个元素的列表
list<int> list4(3, 10); //声明有3个元素,每个元素为10的列表
//使用迭代器遍历
list<int>::iterator iter;
for (iter = list4.begin(); iter != list4.end(); ++iter)
{
cout << *iter << " ";
}
cout << endl;
//*********** 常用函数 ****************//
list4.push_back(6); //在list尾部插入6
list4.push_front(8); //在list头部插入8
cout << list4.size() << endl; //返回元素数量
cout << list4.empty() << endl; //输出0,不为空
cout << list4.front() << endl; //返回第1个元素
cout << list4.back() << endl; //返回最后1个元素
list4.insert(list4.begin(), 100); //在list4的首位置插入100
list4.insert(list4.end(),2, 200); //在list4的尾部插入2个200
list4.insert(list4.begin(), list2.begin(), list2.end()); //把list2插入list4首部
//使用erase清空list4, (注:这里需要注意使用erase后,迭代器的失效状态)
iter = list4.begin();
while(iter != list4.end())
{
iter = list4.erase(iter);
}
return 0;
}
(三)List 文字补充说明:
list就是数据结构中的双向链表,因此它的内存空间是不连续的,通过指针来进行数据的访问,这个特点使得它的随即存取变的非常没有效率,因此它没有提供[]操作符的重载。但由于链表的特点,它可以以很好的效率支持任意地方的删除和插入。
(四)list,vector,deque选择:
1. 如果你需要高效的随即存取,而不在乎插入和删除的效率,使用vector。
2. 如果你需要大量的插入和删除,而不关心随即存取,则应使用list。
3. 如果你需要随即存取,而且关心两端数据的插入和删除,则应使用deque。
注:文章为综合总结,只为给自己提供编程时可用的工具书