顺序容器:

  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之顺序容器的更多相关文章

  1. STL之顺序容器 deque 动态数组

    deque是一个动态数组,deque与vector非常类似,vector是一个单向开口的连续线性空间,deque则是双向开口的连续线性空间.两者唯一的区别是deque可以在数组的开头和末尾插入和删除数 ...

  2. STL - 常用顺序容器代码

    不多说,看代码 #include <iostream> #include <vector> #include <deque> #include <list&g ...

  3. C++ 顺序容器基础知识总结

    0.前言 本文简单地总结了STL的顺序容器的知识点.文中并不涉及具体的实现技巧,对于细节的东西也没有提及.一来不同的标准库有着不同的实现,二来关于具体实现<STL源码剖析>已经展示得全面细 ...

  4. C++——STL中三种顺序容器的简要差别

    C++ STL 提供了3个顺序容器 :vector, deque, list Vector动态数组.支持高速訪问:list双向链表,支持高速插入和删除. vector 中的元素是顺序存放的.所以随机訪 ...

  5. STL顺序容器【vector】【deque】【list】

    我们都知道,stl在集装箱船分为两类,订购集装箱和相关的容器. 顺序容器有三种即动态数组vector,双端队列deque,以及链表list (对csdn的文字排版严重吐槽.写好的版发表了就变了) 一: ...

  6. stl中顺序性容器,关联容器两者粗略解释

    什么是容器 首先,我们必须理解一下什么是容器,在C++ 中容器被定义为:在数据存储上,有一种对象类型,它可以持有其它对象或指向其它对像的指针,这种对象类型就叫做容器.很简单,容器就是保存其它对象的对象 ...

  7. STL顺序容器的基本操作

    容器主要分为:顺序容器和关联容器 顺序容器和关联容器,顺序容器主要有:vector.list.deque等.其中vector表示一段连续的内存地址,基于数组的实现,list表示非连续的内存,基于链表实 ...

  8. STL之如何选择顺序容器

    一.顺序容器的分类 顺序容器:vector向量.list链表.deque双端队列: 优先级最高的是vector向量,它的速度比较快,优点最多: 在程序设计中,容器可以切换: #include < ...

  9. C++ STL 顺序容器--list + 关联容器

    list 双向链表,可以双向遍历,既指向前驱节点,又指向后继但不能随机访问任意元素,可动态增加或者减少元素,内存管理自动完成,增加任何元素都不会使迭代器失效, 删除元素时,除了指向当前被删元素的迭代器 ...

随机推荐

  1. 利用python进行数据分析之绘图和可视化

    matplotlib API入门 使用matplotlib的办法最常用的方式是pylab的ipython,pylab模式还会向ipython引入一大堆模块和函数提供一种更接近与matlab的界面,ma ...

  2. [LeetCode]题解(python):071-Simplify Path

    题目来源: https://leetcode.com/problems/simplify-path/ 题意分析: 简化Unix上的绝对路径,也就是多个'/'代表一个,'..'表示返回上一级目录,‘.' ...

  3. 电脑cmos是什么?和bois的区别?

    很多人都分不清电脑cmos和bois区别,有人一会儿说什么bois设置,有人一会儿说cmos设置.而看起来这两个又似乎差不多,本文将用最简单的白话文告诉各位,什么是cmos,以及cmos和bois的的 ...

  4. VICC国际标准ISO15693下载

    疏耦合卡(VICC)国际标准ISO15693-1点击下载 疏耦合卡(VICC)国际标准ISO15693-2点击下载 疏耦合卡(VICC)国际标准ISO15693-3点击下载

  5. VC中判断指定窗口是否被其他窗口遮挡

    本来是想判断当前窗口是否在最前面,无奈办法用尽就是不行,于是想换个思路:判断指定窗口是否被其他窗口遮挡.然后掘网三尺,找到了这个: bool CTestTray2Dlg::IsCoveredByOth ...

  6. perl 第十四章 Perl5的包和模块

    第十四章 Perl5的包和模块 by flamephoenix 一.require函数  1.require函数和子程序库  2.用require指定Perl版本二.包  1.包的定义  2.在包间切 ...

  7. HDU 1294 Rooted Trees Problem

    题目大意:求有n个节点的树有几种? 题解:http://www.cnblogs.com/keam37/p/3639294.html #include <iostream> typedef ...

  8. HDU 2108 Shape of HDU

    题解:按照输入顺序依次将点连接起来,对于连续的三个点p0,p1,p2,令向量a=p1-p0,b=p2-p1 若是凸多边形,那么b相对于a一定是向逆时针方向旋转的 判断两向量的旋转方向,可以使用向量的叉 ...

  9. CSS3媒体查询(Media Queries)

    媒体类型: all 所有设备 screen 电脑显示器 handheld 便携设备 tv 电视类型设备 print 打印用纸打印预览视图 关键字 and not(排除某种设备) only(限定某种设备 ...

  10. libevent入门

    Libevent API =============================== evtimer_new evtimer_new(base, callback, NULL) 用来做定时器,即当 ...