C++ list
来源:互联网 发布:qq飞车冲锋战神数据 编辑:程序博客网 时间:2024/05/22 02:18
// ConsoleApplication2.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "iostream"#include "string"#include "list"#include <algorithm>#include "functional"using namespace std;//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是双向循环链表,,每一个元素都知道前面一个元素和后面一个元素。 // list每次增加一个元素,不存在重新申请内存的情况,它的成本是恒定的。而vector每当增加关键元素的时候,都需要重新申请新的更大的内存空间, // 会调用元素的自身的复制构造函数,存在构造成本。在销毁旧内存的时候,会调用析构函数,存在析构成本。 // 所以在存储复杂类型和大量元素的情况下,list比vector更有优势! //List将元素按顺序储存在链表中. 与 向量(vector)相比, 它允许快速的插入和删除,但是随机访问却比较慢。 list<int> lst; lst.assign(7, 100); // 7个元素,每个都是100 for (auto i : lst){ cout << i << ","; } cout << endl; ///////////////////////////////////////////////////// lst.clear(); for (auto i = 0; i < 7; ++i){//1,2,3,4,5,6,7 // lst.at(i) = i+1; lst.push_back(i + 1); } cout << "--------------------" << endl; ///////////////////////////////////////////////////// for (auto i : lst){ cout << i << ",";//输出: 1,2,3,4,5,6,7 } cout << endl; cout << "Front: " << lst.front() << endl;//1 cout << "Back: " << lst.back() << endl;//7 for (auto ir = lst.rbegin(); ir != lst.rend(); ir++) { cout << *ir << " ";//输出: 7,6,5,4,3,2,1 } cout << endl; ///////////////////////////////////////////////////// for (auto it = lst.cbegin(); it != lst.cend(); ++it) cout << *it << ",";//输出: 1,2,3,4,5,6,7 cout << endl; cout << "Size: " << lst.size() << endl;//7 ///////////////////////////////////////////////////// lst.insert(lst.begin(), 100); for (auto i : lst){ cout << i << ",";//输出: 100,1,2,3,4,5,6,7 } cout << endl; lst.erase(lst.begin());//执行后: 1,2,3,4,5,6,7 //lst.erase(lst.begin(), lst.End()); //使用iterator删除所有元素; lst.remove(7); //使用remove函数删除指定的对象; lst.push_back(7); //sort(lst.begin(), lst.end(), [](const int& a, const int& b){//& = 从大到小排列 // return a > b; //});//执行后: 7,6,5,4,3 lst.pop_back();//执行后: 1,2,3,4,5,6, if (lst.empty()){ cout << "Empty List!" <<endl; } for (auto i : lst){ cout << i << ",";//输出: 1,2,3,4,5,6, } cout << endl; reverse(lst.begin(), lst.end());//元素翻转 for (auto i : lst){ cout << i << ",";//输出: 6,5,4,3,2,1 } cout << endl; lst.pop_front();//删除头元素 lst.pop_back(); //删除尾元素 lst.push_front(6); lst.push_back(1); for (auto i : lst){ cout << i << ",";//输出: 6,5,4,3,2,1 } cout << endl;// lst.push_front(6);// lst.push_front(5);// lst.unique(); for (auto i : lst){ cout << i << ",";//输出: 6,5,4,3,2,1 } cout << endl; lst.remove_if([](const int& value){ return value < 4; }); for (auto i : lst){ cout << i << ",";//输出: 6,5,4, }cout << endl; lst.push_back(3); lst.push_back(2); lst.push_back(1);//执行后: 6,5,4,3,2,1 lst.remove_if([](const int& value){ return (value % 2) == 1; }); for (auto i : lst){ cout << i << ",";//输出: 6,4,2, }cout << endl; lst.erase(++lst.begin());//清除第二个元素 for (auto i : lst){ cout << i << ",";//输出: 6,2, }cout << endl; while (1); return 0;}
0 0
- List-C
- C list
- 【c/c++】list
- C语言模拟C++list
- Linux C Functions List
- C Recommend Book List
- list c++template
- C#:List细节
- list-c数组构建
- list-c数组构建
- List of C functions
- C + + operator precedence list
- List combining / C Macro
- c语言 linked list
- C#List自定义排序
- list c++template
- book list about C
- c++list 类
- 欢迎使用CSDN-markdown编辑器
- ViewPager 入门三---详解四大函数
- Linux管线命令 - cut,grep,sort,uniq,wc,tee,tr,col,join,paste,expand,split,xargs
- 测绘&遥感&地信 国内外期刊大全
- ViewPager 详解(四)---PagerTabStrip与PagerTitleStrip添加标题栏的异同
- C++ list
- 转:Android--JSONArray排序 - 掌缘生灭
- 子进程复制了父进程的什么
- POJ Power Strings 2406【KMP】
- 有道词典在谷歌Chrome浏览器中无法取词的解决方法
- 集合
- Spring依赖注入:注解注入总结
- Hdu oj 1686 Oulipo
- Pycharm的安装及主要的应用,使用说明及案例