标准模板库----list
来源:互联网 发布:小米软件大全下载 编辑:程序博客网 时间:2024/06/06 00:49
//链表list#include<iostream>using namespace std;#include<list>#include<algorithm>/***list的定义和初始化list<int>lst1;//创建空listlist<int>lst2(5);//创建含有5个元素的listlist<int>lst4(lst2);//使用lst2初始化lst4list<int>lst5(lst2.begin(),lst2.end());//同lst4lst(first,last)//声明一个列表,其元素的初始值来源于由区间所指定的序列中的元素push_back():从list的末端插入push_front():从list的头部插入。empty():判断list是否为空resize():如果调用resize(n)将list的长度改为只容纳n个元素,超出的元素将被删除,如果需要扩展那么调用默认构造函数T()将元素加到list末端。如果调用resize(n,val),则扩展元素要调用构造函数T(val)函数进行元素构造,其余部分相同。clear():清空list中所有的元素front():获得list容器中的头部元素back():获得list容器的最后一个元素pop_back():删除最后一个元素pop_front():通过pop_front()删除第一个元素;序列必须不为空assign():第一种情况是:l1.assign(n,val)将 l1中元素变为n个T(val)。 第二种情况是:l1.assign(l2.begin(),l2.end())将l2中的从l2.begin()到l2.end()之间的数值赋值给l1。swap():交换两个链表(两个重载),一个是l1.swap(l2); 另外一个是swap(l1,l2),都可能完成连个链表的交换。reverse():完成list的逆置merge():合并两个链表并使之默认升序。l1.merge(l2,greater<int>()); 调用结束后l2变为空,l1中元素包含原来l1 和 l2中的元素insert():在指定位置插入一个或多个元素l1.insert(l1.begin(),100); 在l1的开始位置插入100。l1.insert(l1.begin(),2,100); 在l1的开始位置插入2个100。l1.insert(l1.begin(),l2.begin(),l2.end());在l1的开始位置插入l2的从开始到结束的所有位置的元素。erase():删除一个元素或一个区域的元素l1.erase(l1.begin()); 将l1的第一个元素删除。l1.erase(l1.begin(),l1.end()); 将l1的从begin()到end()之间的元素删除。*/#include<iostream>using namespace std;#include<list>void display(list<int>l)//输出链表{list<int>::iterator iter;for(iter=l.begin();iter!=l.end();iter++){cout<<*iter<<" ";}cout<<endl;}int main(){list<int>l1;list<int>l2;list<int>l3;list<int>::iterator iter;int i;for(i=0;i<10;i++)//从尾部插入元素到l1{l1.push_back(i);}for( i=0;i<10;i++)//从头部插入元素到l2{l2.push_front(i);}for( i=0;i<10;i++)//从头部插入元素到l3{l3.push_front(i);}cout<<"链表l1:";display(l1);cout<<"链表l2:";display(l2);cout<<"改变l1的长度:";l1.resize(3);//改变链表的长度display(l1);l2.clear();//清空所有元素display(l2);cout<<"l1首元素:"<<l1.front()<<endl;//获得头部元素cout<<"l1尾元素:"<<l1.back()<<endl;//获得尾部元素cout<<"删除l1中的最后一个元素:"<<endl;l1.pop_back();//删除最后一个元素display(l1);cout<<"删除l1中的第一个元素:"<<endl;l1.pop_front();//删除第一个元素display(l1);cout<<"交换链表l1和l3:";swap(l1,l3);cout<<endl;cout<<"l1:";display(l1);cout<<"l3:";display(l3);cout<<"逆置l1后:";l1.reverse();//逆置display(l1);cout<<"合并l1和l3后:";l1.merge(l3,greater<int>());display(l1);cout<<"在l3开始位置插入5:";l3.insert(l3.begin(),5);display(l3);cout<<"在l3开始位置插入10个5:";l3.insert(l3.begin(),10,5);display(l3);cout<<"将l1从begin到end之间的元素删除:";l1.erase(l1.begin(),l1.end());if(l1.empty())cout<<"l1空!"<<endl;return 0;}
阅读全文
0 0
- 标准模板库----list
- c++ 标准模板库 List
- 标准模板库list总结
- 标准模板库(list)
- 探讨c++标准模板库中的List
- (Zz)STL 简介,标准模板库(list)
- STL]标准模板库(STL)List
- STL标准模板库 list的使用
- STL 简介,标准模板库 list
- 标准模板库STL之list
- 标准模板库(STL)学习指南之List容器
- STL标准模板类库-LIST的使用
- 标准模板库(STL)学习指南之List容器
- 标准模板库(STL)学习指南之List容器
- 标准模板库使用举例(STL - (LIST,VECTOR))
- 标准模板库(STL)学习探究之List容器
- 标准模板库(STL)学习笔记之List容器
- 标准模板库(STL)学习指南之List容器
- jquery ajax方法调用在session超时以后如何跳转到登录页面?
- css 学习笔记第 一 波
- windows10和Ubuntu16.04双系统后windows10不能正常启动
- Android性能优化的一些总结
- 机器学习---K-Nearest Neighbor算法应用二(手动实现KNN算法)
- 标准模板库----list
- 深度学习网络
- CF Gym 101615I Long Long String【模拟】
- 哈夫曼树的实现
- Kotlin基础篇之let、with、run、apply、also函数的使用
- Eclipse导入项目初始化配置
- 在Python中使用多进程
- 中文乱码问题及其解决方法(java中)
- Java序谈之程序设计模式