由于书籍上写的已经很经典了,故大部分用图片的形式来阐述概念,代码纯手打进行验证。

1.顺序容器类型:vector、deque、list、forword_list、array、string。

2.顺序容器概述:

3.小结

4. 验证代码如下:

 #include <iostream>
#include <vector>
#include <array>
#include <string>
#include <list>
using namespace std; int main()
{
//vector <int> Vec = {0,1,2,3,4,5,6,7,8,9};//vs2010 显示此初始化错误,但书中正确;
vector <int> Vec(,);
cout<<"vector元素:"<< Vec[] <<endl; //标准库array具有固定大小
array <int,> Arr = {,,,,,,,,,};//array容器必须指定大小;
array <int,> Arr1 = {};//Arr1的元素为12,0,0,...,0;
Arr = Arr1;//将Arr元素替换为Arr1,两者必须类型相同;
Arr.swap(Arr1);//一定程度上,同上式功能,swap为交换成员,交换两者元素;
swap(Arr,Arr1);//交换两者元素,速度比拷贝快得多; //swap操作交换必须为两个相同类型容器的内容,大小无关;
//下面交换说明为:交换后svec1为有24个元素的string类型的容器;
//svec2为10个的string类型的容器;
vector<string> svec1();
vector<string> svec2();
swap(svec1,svec2); //添加元素
//采用array和forward_list之外,每个顺序容器(包括string类型)都支持push_back
//下面每次读取一个string到word中,然后追加到容器尾部
string word;
while(cin >> word)
svec1.push_back(word); //push_front 此操作将元素插入到容器头部 vector不支持
list <int> ilist;
// 将元素添加到ilist的开头,将0,1,2,3添加到ilist开头
for (int i = ; i!= ;++i)
ilist.push_front(i); // 在容器中的特定位置添加元素 使用insert
//值得一提的是 insert是插入到指定位置之前的位置处
vector<string> svec;
list <string> slist;
//等价于调用slist.push_front("Hello")
slist.insert(slist.begin(),"Hello");
//vector不支持push_front 用insert实现
svec.insert(svec.begin(),"Hello");
//还可插入多个值 插入10个“a”
svec.insert(svec.end(),,"a"); //在容器中访问元素的成员函数:front back 下标和at
//删除元素 erase 以及pop_back()删除尾元素 pop_front()删除首元素 //改变容器大小resize srray不支持resize 因为其初始化时大小固定
list<int>ilist1(,);// 定义10个int类型数据 都为42
ilist1.resize();// 将5个值为0的元素添加到ilist的末尾
ilist1.resize(,-);// 将10个值为-1的元素添加到ilist的末尾
ilist1.resize();// 从ilist末尾删除20个元素 system("pause");
return ;
}

C++ Primer 第九章 顺序容器的更多相关文章

  1. C++ Primer : 第九章 : 顺序容器的操作以及迭代器失效问题

    顺序容器的添加.访问.删除操作以及forward_list的特殊操作,还有迭代器失效问题. 一.向容器添加元素 // array不支持这些操作 // forward_list有自己撰于的版本的inse ...

  2. C++ Primer : 第九章 : 顺序容器的定义、迭代器以及赋值与swap

    顺序容器属于C++ STL的一部分,也是非常重要的一部分. 顺序容器包括: std::vector,包含在头文件<vector>中 std::string, 包含在头文件<strin ...

  3. C++ Primer 读书笔记: 第9章 顺序容器

    第9章 顺序容器 引: 顺序容器: vector 支持快速随机访问 list 支持快速插入/删除 deque 双端队列 顺序容器适配器: stack 后进先出栈 queue 先进先出队列 priori ...

  4. C++ Primer : 第九章 : vector变长、string的其他操作以及容器适配器

    vector变长机制.string的其他构造方法,添加.替换和搜索操作,string比较和数值转换,最后是容器适配器. vector对象是如何增长的 vector和string类型提供了一些成员函数, ...

  5. C++ Primer 5th 第9章 顺序容器

    练习9.1:对于下面的程序任务,vector.deque和list哪种容器最为适合?解释你的选择的理由.如果没有哪一种容器优于其他容器,也请解释理由.(a) 读取固定数量的单词,将它们按字典序插入到容 ...

  6. [C++ Primer] 第9章: 顺序容器

    顺序容器概述 顺序容器的类型有: 类型 说明 vector 可变长度数组. 支持快速随机访问. deque 双端队列. 支持快速随机访问. list 双向链表. 只支持双向顺序访问. forward_ ...

  7. 《C++ Primer》笔记 第9章 顺序容器

    顺序容器类型 类型 解释 vector 可变大小数组.支持快速随机访问.在尾部之外的位置插入或删除元素可能很慢 deque 双端队列.支持快速随机访问.在头尾位置插入.删除速度很快 list 双向链表 ...

  8. 【c++ Prime 学习笔记】第9章 顺序容器

    一个容器是特定类型对象的集合 顺序容器中元素的顺序与其加入容器的位置对应 关联容器中元素的顺序由其关联的关键字决定,关联容器分为有序关联容器和无序关联容器 所有容器类共享公有接口,不同容器按不同方式扩 ...

  9. C++ Primer 有感(顺序容器)

    1.顺序容器的元素排列次序与元素的值无关,而是由元素添加到容器里的次序决定. 2. 顺序容器 vector                               支持快速随机访问 list   ...

随机推荐

  1. Android笔记: 查看SDK源码

    Eclipse中设置查看JavaAndroid源码及文档的方法.pdf 经验证方法可行

  2. jenkins创建job不能用中文问题

    Your Container doesn't use UTF-8 to decode URLs. If you use non-ASCII characters as a job name etc,  ...

  3. Git commit 常见用法

        Git commit git commit 主要是将用户通过git add命令添加到暂存区里的改动给提交到本地的版本库,关于版本库的构成可以查看我先前的笔记. 每次提交我们都会在本地版本库生成 ...

  4. mac 启动 docker daemon

    我是用virtualbox安装的. 有一个小问题就是启动docker服务时会检查boot2docker是不是最新的. 由于github被封了,所以只能手动下 https://github.com/bo ...

  5. ECStore在Win环境下如何运行CMD命令

    大多数程序员使用windows开发环境来做ECStore二次开发,经常需要使用 ECStore自带的cmd命令进行一些系统操作,如清除缓存(cacheclean),升级程序(update),创建新的a ...

  6. 使用 jsPlumb 绘制拓扑图 —— 异步加载与绘制的实现

    本文实现的方法可以边异步加载数据边绘制拓扑图. 有若干点需要说明一下: 1.  一次性获取所有数据并绘制拓扑图, 请参见文章: <使用 JsPlumb 绘制拓扑图的通用方法> ; 本文实现 ...

  7. Win10系统Start Menu上的图标莫名消失

    今天在工作过程中,突然有测试的同事给我报来一个问题.她是这么描述的“执行完XXX工具之后,在Start Menu找不到图标了.” 针对问题本身: 1,是执行完XXXX工具之后? 2,Start Men ...

  8. Ugly Number II

    注意负数,所以要使用long,而不能用int 详细解释 请参见http://www.cnblogs.com/julie-yang/p/5147460.html #include<vector&g ...

  9. StringBuilder和Append的一个程序及一个基础概念

    废话少说直接来说:比如在串口数据操作中,我们只想显示串口接收的字符串,好吧你用string[]吧,有多少个字符串(顺便说下二进制在C#中是以字符串形式出现的)就要分配多少个储存空间,自己试下,要你你干 ...

  10. POJ 2516:Minimum Cost(最小费用流)

    https://vjudge.net/problem/11079/origin 题意:有N个商店和M个供应商和K种物品,每个商店每种物品有一个需求数,每个供应商每种物品有一个供应量,供应商到商店之间的 ...