list的使用
来源:互联网 发布:log4j2 java web 编辑:程序博客网 时间:2024/05/30 02:22
List是将元素按顺序存储在链表中,与vector的使用很类似,但是它比vector能更为方便的插入和删除。但是随机访问时比较慢的。
【文件包含】
#include<list>using namespace std;
注意:list它是双向链表
【list操作】
一:初始化
list <int> l1;//对象l1的size=0list <int> l2(5);//对象l2的size=5,元素是0(vs2013环境)list <int> l3(5,5);//对象l3的size=5,每个元素是5
常用操作:
assign();给链表赋值,将新内容分配给列表容器,替换其当前内容,并相应地修改其大小。
list<int>l0;l0.assign(3, 2);
empty();判断链表是否为空
front();返回链表的头一个元素
back();返回连边的最后一个元素
注意:如果链表为空时,使用front()和back()会怎么样呢?此时程序编译没问题,但是会出错:
begin();返回第一个元素的迭代器
end();返回嘴一个元素的下一个位置的迭代器
push_back();在链表后面插入元素
pop_back();删除最后一个元素
push_front();在链表头部插入元素
pop_front();删除第一个元素
例如:打印链表
list<int>l; l.push_back(1);//插入1 l.push_back(2);//插入2 l.push_back(3);//插入3 l.push_back(4);//插入4 l.pop_back();//删除4 l.pop_front();//删除1 l.push_front(1);//在最前面插入1 list<int>::iterator it = l.begin();//定义迭代器it,表示第一个位置 while (it!=l.end()) { cout << *it << " "; ++it; } //输出1 2 3
list::erase;删除元素
iterator erase (iterator pos);删除位置元素
iterator erase (iterator first, iterator last);删除位置区间 [ frist,last )(左闭右开)的元素
l.erase(l.begin(), l.end());//删除所有元素
list::insert;
iterator insert (iterator position, const value_type& val);
void insert (iterator position, size_type n, const value_type& val);
void insert (iterator position, InputIterator first, InputIterator last);
l1.insert(l1.begin(), 100);//在l1的开始位置插入100l1.insert(l1.begin(), 2, 100);//在l1的开始位置插入2个100 l1.insert(l1.begin(), l2.begin(), l2.end())//在l1的开始位置插入l2的开始到结束的所有元素
size();返回链表中元素的个数
max_size();返回list能容纳的最大元素大小
list<int>l;l.push_back(1);l.push_back(2);l.push_back(3);l.push_back(4);cout << l.size() << endl;cout << l.max_size()<<endl;
merge();合并两个有序链表
list<int> l1;l1.push_back(1);l1.push_back(2);l1.push_back(3);print_list(l1);list<int> l2;l2.push_back(4);l2.push_back(5);l2.push_back(6);l1.merge(l2);//会清空l2print_list(l1);print_list(l2);
remove();从list删除指定元素,如果该元素存在,则将list中的所有该元素删除,如果不存在,则不发生任何变化
list<int> l1;l1.push_back(1);l1.push_back(4);l1.push_back(2);l1.push_back(4);l1.push_back(3);l1.push_back(4);print_list(l1);l1.remove(4);print_list(l1);l1.remove(40);print_list(l1);
resize():改变list的大小
reverse():把list的元素逆置
sort():给list排序
swap():交换两个list
unique():删除list中重复的元素
list<int> l1; l1.push_back(3); l1.push_back(1); l1.push_back(2); l1.push_back(4); l1.push_back(4); l1.push_back(2); print_list(l1); list<int> l2; l2.push_back(4); l2.push_back(5); l2.push_back(6); l1.resize(8);//将l1大小改为8 cout << l1.size() << endl; l1.reverse(); //逆置l1 print_list(l1); l1.sort(); //给l1排序 print_list(l1); l1.swap(l2); //交换l1和l2 print_list(l1); l2.unique();//删除l2中重复的元素 print_list(l2);
- List box的使用
- list的使用
- 有关List的使用
- list control的使用
- STL list的使用
- stl list的使用
- std::list的使用
- List<T>的使用
- List的简单使用
- List的简单使用
- List的使用示例
- List排序的使用
- List排序的使用
- java List的使用
- C# List的使用
- map-list的使用
- List<T>的使用
- LIst的使用
- HDU 1058:Humble Numbers (水)
- 两个链表的第一个公共结点,三种方法~
- 组合数打表+二维前缀数组优化——组合数问题
- 网页设计与制作学习背景了解
- 学术圈子与科研团队
- list的使用
- 小仙女讲软考(二):全书各章节的联系
- delphi 查看windows后台进程是否运行
- 欢迎使用CSDN-markdown编辑器
- CNN原理及matlab实现
- 动态库调用对话框资源
- poj 2800 LA 5916 求一个数模1到n 得到的和
- 运用JS构造菱形/三角形
- JavaScript:JSON数组根据属性排序