STL之顺序容器
顺序容器:
vector:数组
list:链表
deque:双端数组
顺序容器适配器:
stack:堆栈
queue:队列
priority_queue:优先级队列
deque是一个动态数组
deque与vector非常类似;
deque可以在在数组开头和末尾插入和删除数据;
#include <deque>
#include <algorithm> deque<int>::iterator iElemetnLocater;
for(iElementLocater a.begin();
iElementLocater != a.end();
++iElemetLocater){
//distance函数
size_t nOffert = distance(a.begin(), iElementLocater);
cout << "a["<<nOffset<<"]" <<*iElementLocater << endl; }
list 类模板:
vector向量只能在末尾插入数据;
deque可以在开头和末尾拆入;
顺序容器 STL list类(双向链表)
list是一个模板类;
在list开头插入元素;
在list末尾插入元素;
在list中间插入元素;
删除list中的元素;
对list中元素进行反转和排序;
#include <iostream>
#include <list> using namespace std; int main()
{
std::list<int> a;
std::list<list>::iterator iter; a.push_front(); //头插
a.push_front();
a.push_front();
a.push_front();
a.push_back(); //尾插 iter = a.begin();
++iter;
a.insert(iter, ); //通过迭代器位置的改变来插入数据;
//在末尾拆入4个20
a.insert(a.end(), , ) for(std::list<int>::iterator it=a.begin();
it!=a.end();it++){
std::cout << *it << std::endl;
}
return ;
}
#include <vector>
#include <list>
#include <deque> using namespace std; int main()
{
vector<string> s_vec;
s_vec.push_back("hello");
s_vec.push_back("c++");
s_vec.push_back("STL"); //利用迭代器,vector初始化list
list<string> slist(s_vec.begin(), s_vec.end()); const list<int>::size_type list_size =;
list<string> slist(list_size, "hello"; list<int> I_list; vector<int> ivec; //默认构造函数
ivec.push_back();
ivec.push_back();
ivec.push_back(); vector<int> ivec2(ivec); //使用ivec初始化ivec2;
vector<int> ivec2(ivec); //使用ivec初始化ivec2; char *words[] = {"stately", "plump", "buck"};
size_t words_size = sizeof(words)/sizeof(char*); //利用指针 数组初始化list容器
list<string> words(words, words+words_size): const list<int>::size_type list_size = ;
list<string> slist(list_size, "hello"); //list里面64个hello;
list<int> ilist(list_size); //ilist默认64个0; vector<Foo> a; //不进行初始化,不用调用Foo的构造函数;
vector<Foo> b(, ); //进行了初始化,而且调用的是带参数的构造函数; vector<vector<string> > lines; //vector里面存放vector
list<vector<string> > list_lines; //list里面存放vector //list<int> ilist(ivec); //Error;
return ;
}
STL之顺序容器的更多相关文章
- STL之顺序容器 deque 动态数组
deque是一个动态数组,deque与vector非常类似,vector是一个单向开口的连续线性空间,deque则是双向开口的连续线性空间.两者唯一的区别是deque可以在数组的开头和末尾插入和删除数 ...
- STL - 常用顺序容器代码
不多说,看代码 #include <iostream> #include <vector> #include <deque> #include <list&g ...
- C++ 顺序容器基础知识总结
0.前言 本文简单地总结了STL的顺序容器的知识点.文中并不涉及具体的实现技巧,对于细节的东西也没有提及.一来不同的标准库有着不同的实现,二来关于具体实现<STL源码剖析>已经展示得全面细 ...
- C++——STL中三种顺序容器的简要差别
C++ STL 提供了3个顺序容器 :vector, deque, list Vector动态数组.支持高速訪问:list双向链表,支持高速插入和删除. vector 中的元素是顺序存放的.所以随机訪 ...
- STL顺序容器【vector】【deque】【list】
我们都知道,stl在集装箱船分为两类,订购集装箱和相关的容器. 顺序容器有三种即动态数组vector,双端队列deque,以及链表list (对csdn的文字排版严重吐槽.写好的版发表了就变了) 一: ...
- stl中顺序性容器,关联容器两者粗略解释
什么是容器 首先,我们必须理解一下什么是容器,在C++ 中容器被定义为:在数据存储上,有一种对象类型,它可以持有其它对象或指向其它对像的指针,这种对象类型就叫做容器.很简单,容器就是保存其它对象的对象 ...
- STL顺序容器的基本操作
容器主要分为:顺序容器和关联容器 顺序容器和关联容器,顺序容器主要有:vector.list.deque等.其中vector表示一段连续的内存地址,基于数组的实现,list表示非连续的内存,基于链表实 ...
- STL之如何选择顺序容器
一.顺序容器的分类 顺序容器:vector向量.list链表.deque双端队列: 优先级最高的是vector向量,它的速度比较快,优点最多: 在程序设计中,容器可以切换: #include < ...
- C++ STL 顺序容器--list + 关联容器
list 双向链表,可以双向遍历,既指向前驱节点,又指向后继但不能随机访问任意元素,可动态增加或者减少元素,内存管理自动完成,增加任何元素都不会使迭代器失效, 删除元素时,除了指向当前被删元素的迭代器 ...
随机推荐
- 使2个div 在一行上显示
<!DOCTYPE html> <html> <head> <meta name="viewport" content="wid ...
- UNIX/Linux-进程控制(实例入门篇)
UNIX进程 进程标识符 要想对进程控制,必须得获取进程的标识.每个进程都有一个非负整数表示的唯一进程ID,虽然是唯一的,但是进程ID可以重用.当一个进程终止后,其进程ID就可以再次使用了. 系统 ...
- 使得fiddler来抓包查看微信浏览器的网页源码
需要工具:http://www.telerik.com/fiddler 下载安装后 第二步: 打开这个选项: 设置代理:allow remote computer to connect 端口为888 ...
- [转]Swift 简介 - 苹果最新的编程语言
Swift 真的可以说是最新的编程语言了,2014wwdc刚刚发布,下面来了解一下都有哪些特点. 首先感谢原作者,主要内容是借鉴他的,参考链接 http://zh.lucida.me/blog/an- ...
- sping+maven+mybatis+ehcache续之实现mapper
配置接着上一篇文章 新建UserMapper.java和UserMapper.xml 其中UserMapper.xml的namespace以及文件名要和UserMapper.java一致 <ma ...
- elk 添加节点
elk 添加节点: cluster.name: es_cluster node.name: node03 path.data: /elk/elasticsearch/data path.logs: / ...
- 意大利奢侈品牌-Kiton 华丽进驻北京新光天地-时尚生活-泛高尔夫网
意大利奢侈品牌-Kiton 华丽进驻北京新光天地-时尚生活-泛高尔夫网 意大利奢侈品牌-Kiton 华丽进驻北京新光天地
- 看java源代码
不会看JDK源代码,相当于没学过Java. 网上不容易找到一篇帮助我解决了如何在Eclipse下查看JDK源代码 的文章. 核心提示:在Eclipse中查看JDK类库的源代码!!! 设置: 1.点 w ...
- Google Play和基于Feature的过滤 —— Feature 参考手册
翻译自 Features Reference 下表列出了软/硬件Feature和权限的参考信息,它们被用于GooglePlay. 硬件feature 下面列出了被大多数当前发布的平台所支持的硬件功能描 ...
- NSDate conversion utilities
// Gets UTC NSDate from DateTime(.Net/WCF). + (NSDate *)fromDateTime:(NSString *)dateTime { NSDate * ...