list也是一个容器,和vector一样,不同的是,list是用双向链表实现的,所以对于list来说,在中间插入删除数据要比vector快得多
首先引入头文件
#include <list>
创建一个list
std::list<int> lgh;
和vector一样 可以在创建的同时初始化
比如
list<int> lgh(2,10);
list<int> lgh(10);
list<int> lgh={1,2,3,4,5};
接下来使用迭代器打印全部的list元素
同时还要用到 begin() end()
int main() { list<int> lasdf = {1,2,3,4,5,7,8}; list<int>::iterator iter; for ( iter = lasdf.begin(); iter != lasdf.end(); iter++) { cout<<*iter<<' '; } }
也可以用同样的方式输出第一个元素 最后一个元素 size长度等
cout<<lasdf.front()<<endl; cout<<lasdf.back()<<endl; cout<<lasdf.size()<<endl;
以下是常用成员函数
assign() 给list赋值
back() 返回最后一个元素
begin() 返回指向第一个元素的迭代器
clear() 删除所有元素
empty() 如果list是空的则返回true
end() 返回末尾的迭代器
erase() 删除一个元素
front() 返回第一个元素
get_allocator() 返回list的配置器
insert() 插入一个元素到list中
max_size() 返回list能容纳的最大元素数量
merge() 合并两个list
pop_back() 删除最后一个元素
pop_front() 删除第一个元素
push_back() 在list的末尾添加一个元素
push_front() 在list的头部添加一个元素
rbegin() 返回指向第一个元素的逆向迭代器
remove() 从list删除元素
remove_if() 按指定条件删除元素
rend() 指向list末尾的逆向迭代器
resize() 改变list的大小
reverse() 把list的元素倒转
size() 返回list中的元素个数
sort() 给list排序
splice() 合并两个list
swap() 交换两个list
unique() 删除list中重复的元素
排序
int main() { list<int> lasdf = {1,2,3,4,5,7,8}; list<int>::iterator iter; for ( iter = lasdf.begin(); iter != lasdf.end(); iter++) { cout<<*iter<<' '; } cout<<lasdf.front()<<endl; cout<<lasdf.back()<<endl; cout<<lasdf.size()<<endl; lasdf.push_back(5); lasdf.push_front(18); lasdf.sort(); for ( iter = lasdf.begin(); iter != lasdf.end(); iter++) { cout<<*iter<<' '; } }
输出结果
1 2 3 4 5 7 8 1 8 7 1 2 3 4 5 5 7 8 18
因为list和vector的用法和函数几乎一样 所以我就不一个个写进来