STL list
来源:互联网 发布:四年级上册优化的答案 编辑:程序博客网 时间:2024/06/06 01:57
STL中的list是序列容器,内部实现方式是双向链表,而链表的优势在于插入和删除元素效率高,但是随机访问元素相比vector数组的形式就低,所以读者在具体实现项目的时候,可以考虑因素选取。
函数说明
这里需要注意的是,merge和splice函数用完后,函数形参的list链表会被清空。而且merge函数只能合并两个有序链表。
#include <iostream>#include <list>std::list<int> g_List;//******************************************************************//FUNCTION:void addElement(std::list<int>& vList){ for (unsigned int i=0; i<3; i++) { vList.push_back(rand()%100); //链表尾部插入一个随机数 } vList.push_front(-1); //元素放在随机数最前 vList.sort();//排序,默认升序,可以自定义排序函数,传入函数谓词即可}//******************************************************************//FUNCTION:void printElement(const std::list<int>& vList){ std::list<int>::const_iterator ListIt = vList.begin(); //访问链表 for (; ListIt != vList.end(); ListIt++) { std::cout << *ListIt << " "; } std::cout << std::endl;}int main(){ addElement(g_List); printElement(g_List); std::list<int> TempList; addElement(TempList); g_List.merge(TempList); //合并有序链表 printElement(g_List); addElement(TempList); g_List.splice(++g_List.begin(), TempList, ++TempList.begin(), TempList.end()); //指定位置结合,第二个参数是第二个链表 printElement(g_List); addElement(TempList); g_List.insert(++g_List.begin(), TempList.begin(), TempList.end()); //指定位置插入,插入后链表不清空 printElement(g_List); return 1;}
【参考资料】
【1】http://www.cnblogs.com/scandy-yuan/archive/2013/01/08/2851324.html
【2】http://www.cnblogs.com/fangyukuan/archive/2010/09/21/1832364.html
0 0
- STL--list
- STL--list
- STL list
- STL list
- STL----list
- STL list
- stl-list
- stl list
- STL--list
- STL list
- stl list
- STL---List
- STL list
- STL list
- STL list
- STL list
- STL list
- STL List
- 二分图(Java)
- 【POJ 3083】Children of the Candy Corn
- 对于linux下system()函数的深度理解(整理)
- Facebook前端框架React.js JSX语法基础
- 关于sd卡中storage/emulated/0找不到问题
- STL list
- Android Studio初接触
- 动态链接库和静态链接库的原理及区别
- Android Uri介绍
- 面向对象
- 不使用临时变量交换两个无符号 正数a和b的值
- 解决百度云下载速度缓慢问题
- 初识Submodule
- BZOJ-2002 弹飞绵羊 Link-Cut-Tree (分块)