2018-01-18

1、容器的概念

容器就是一些特定类型对象的集合。

2、容器的分类

容器主要分为顺序容器和关联容器。顺序容器为程序员提供了控制元素存储和访问顺序的能力,这种顺序不依赖于元素的值,而与元素加入容器时的位置相对应。关联容器则是根据关键字的值来存储元素。

3、顺序容器

重点讲述使用最多的vector容器。

vector 是一个类模板(class template),要包含相应的头文件#include<vector>。vector属于std命名域,使用全局命名域方式using namespace std;

(1)vector的初始化:

(2)创建vector对象: vector是模板而非类型,由vector生成的类型必须包含vector中元素的类型。如:vector<int> ivec1;    //ivec1保存int类型的对象

(3)vector中的操作:

添加元素

vec.push_back(a) //在数组的最后添加一个数据a

vec.insert(pos,elem) //在pos位置插入一个elem拷贝,传回新数据位置

vec.insert(vec.begin()+i,a);在第i+1个元素前面插入a;

删除元素

vec.pop_back() //删除数组的最后一个数据

vec.erase(pos) //删除pos位置的数据,传回下一个数据的位置

vec.erase(vec.begin()+2);删除第3个元素

vec.erase(vec.begin()+i,vec.end()+j);删除区间[i,j-1];区间从0开始

vec.clear() //删除vec中所有元素,返回void

vec向量的大小

vec.size() //返回容器中实际数据的个数。

vec.empty() //判断vector是否为空,里面有数据返回false,否则返回true

获取迭代器

vec.begin() //返回vec的首元素

vec.end() //返回尾元素之后元素的位置,即最后一个单元+1的指针

vec.rbegin() //将vector反转后的开始指针返回(其实就是原来的end()-1)

vec.rend() //将vector反转构的结束指针返回(其实就是原来的begin-1)

访问vector中的数据

第一种方式 vec.at(index) //函数和[]函数使用可以说是一模一样. 都是为了访问对应index中存储的数据, 如果index大于vector的size. 两者都是抛出out_of_range的exception.

第二种方式 vector::operator[] 

operator[]主要是为了与C语言进行兼容。它可以像C语言数组一样操作,由于operator[]容易造成一些错误,所有我们很少用它

vector其他成员函数

vec.assign(beg,end) //将[beg; end)区间中的数据赋值给c。

vec.assign(n,elem) //将n个elem的拷贝赋值给c。

vec.back() //传回最后一个数据,不检查这个数据是否存在。

vec.front() //传回地一个数据。

vec.swap(b) //交换vec和b中元素

swap(a,b) //和vec.swap(b)一样

4、关联容器

重点讲述关联容器map。map是c++的一个标准容器,它提供了很好的一对一的关系。map容器的元素是一些关键字——值(key-value)对,key和value可以是你想要的任意类型,关键字起到了索引的作用,值则表示与索引相关的联的数据。换句话说,就是通过key可以找到相应的value。

(1)创建map:

map <key_type,value_type>tempMap;

(2)map初始化:

map tempMap{

  {key1,value1},

  {key2,value2},

  ......};


举例:



最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容

  • 登录getUser这个接口用不同的id和unionId去查,总是出现同一个结果。查接口,断点检查。断点显示数据是正...
    Catch_the_tail阅读 705评论 4 0
  • 参考:http://blog.csdn.net/permike/article/details/51879578 ...
    ihujian阅读 199评论 0 1
  • 计算机网络基础—OSI七层模型 1、OSI七层模型分别是: 1.1应用层:为应用程序提供接口,是程序能够使用网络服...
    生活鸽子阅读 698评论 0 0
  • 你和我,做为一个生命体,都是极其偶然的存在。当然,还有他。 故事的主角李先生,我们已经三十多年没见面了。即便在三十...
    海月先生阅读 537评论 3 7
  • 我家杨女士一如既往的乐观 宽慰我不要想太多不要为没有发生的事儿担忧 自己的都是好的 没事去做做汗蒸啥的 就想到我爸...
    巴普洛夫有点忙阅读 306评论 0 0