STL之list
来源:互联网 发布:开发麻将软件多少钱 编辑:程序博客网 时间:2024/05/16 04:58
List原理
首先呢,我们得说list是一个泛化的双向链表,支持各种频繁的插入删除操作,每次插入一个新的节点,都会动态分配一块对应大小的内存块,每次删除一个新的节点都会
release该对应内存大小,也就是说list对应内存当中是离散的。也就是说list是不支持随机访问的,自然也就没有再分配(realloc操作),自然也就没有可获得再分配之前的
capacity属性了,list对象,在没有指定元素个数之前,是不会分配内存的。
与我们所知的不太相符的是list不仅仅是一个双向链表,而且是一个环状双向链表,换句话说,list就是首尾相连的,要知道的是list链表的头结点是不存储任何数据的,她就是头结点,与我们第一次insert的节点并不是一个哦。。插入第一个节点之后,才进行扩展,总而言之,list双向环状链表就是首尾相连的啊
#include "stdafx.h"#include<list>#include<iostream>using namespace std;int _tmain(int argc, _TCHAR* argv[]){//list 容器初始化为4个元素大小,同时每个里面默认值都是5list<int>m_hinstance(4,5);//开始遍历查看是否是这样的list<int>::iterator itr;cout<<"第一次遍历结果\n";for(itr=m_hinstance.begin();itr!=m_hinstance.end();itr++){cout<<*itr<<endl;}//list的增加元素操作cout<<"在末尾增加一个元素1之后的遍历";m_hinstance.push_back(1);for(itr=m_hinstance.begin();itr!=m_hinstance.end();itr++){cout<<*itr<<endl;}return 0;}
这样的话,push_back是不是就不对了?不明白...
#include "stdafx.h"#include<list>#include<iostream>using namespace std;int _tmain(int argc, _TCHAR* argv[]){//list 容器初始化为4个元素大小,同时每个里面默认值都是5list<int>m_hinstance(4,5);//开始遍历查看是否是这样的list<int>::iterator itr;cout<<"第一次遍历结果\n";for(itr=m_hinstance.begin();itr!=m_hinstance.end();itr++){cout<<*itr<<endl;}//list的增加元素操作cout<<"在首部增加一个元素1之后的遍历";m_hinstance.push_front(1);for(itr=m_hinstance.begin();itr!=m_hinstance.end();itr++){cout<<*itr<<endl;}return 0;}
是不是发现push_front没有效果??
可如果在push_front之后再加一句push_front就可以了!!!
// LIst.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include<list>#include<iostream>using namespace std;int _tmain(int argc, _TCHAR* argv[]){//list 容器初始化为4个元素大小,同时每个里面默认值都是5list<int>m_hinstance(4,5);//开始遍历查看是否是这样的list<int>::iterator itr;cout<<"第一次遍历结果\n";for(itr=m_hinstance.begin();itr!=m_hinstance.end();itr++){cout<<*itr<<endl;}//删除第一一个元素itr=m_hinstance.begin();m_hinstance.erase(itr);//如果是有remove,则是删除其值是参数的所有元素cout<<"删除第一个元素之后的遍历\n";for(itr=m_hinstance.begin();itr!=m_hinstance.end();itr++){cout<<*itr<<endl;}return 0;}
删除元素还是没有问题的哈,只是查找,我就不说了,因为list在内存中是离散分布的不可能支持随机访问,其效率也是最低的,在这里除了遍历一遍我也没有别的方法了,在这就不说了
话说,list的push操作是不是还有问题?能力有限,在这儿就不多说了...
0 0
- STL学习之list
- STL之list模板
- STL之list学习
- stl之list使用
- STL之List
- STL容器之list
- STL容器之list
- STL之count、list
- sgi stl 之list
- STL之list基础
- STL之list
- C++ STL之list
- stl库之list
- STL容器之list
- STL之list
- STL 之 list
- STL 之 list
- STL 之 list
- C++浮点数输出 保留有效数字位数设定
- 算法7-6:图论中的难题
- 表单数据的加密传输
- 面试那些事
- Android性能优化
- STL之list
- C2146 错误
- struts2-系统默认校验器大全
- Hibernate多对一关联映射(单向)
- 英文同样的字号但是第一个字母要比其他字母大
- 彖者言乎象章
- xmu 1003 Sort
- phone app 高通工具使用摘抄
- zoj 3279