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

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. backbone event 事件订阅 和发布 源码小读

    nodejs有eventEmitter 类,想到backbone  有个event模块 可以对对象做事件绑定和触发,是backbone的核心模块. backbone event模块 on 添加自定义事 ...

  2. resx文件在X64位编译,提示“未能加载文件或程序集”的问题?

    原文:resx文件在X64位编译,提示"未能加载文件或程序集"的问题? resx文件在X64位编译,提示"未能加载文件或程序集"的问题? 解答: 错误现象如下 ...

  3. Python开发【杂货铺】:五个知识点搞定作用域

    1.块级作用域 想想此时运行下面的程序会有输出吗?执行会成功吗? #块级作用域 if 1 == 1: name = "lzl" print(name) for i in range ...

  4. 多进程、协程、事件驱动及select poll epoll

    目录 -多线程使用场景 -多进程 --简单的一个多进程例子 --进程间数据的交互实现方法 ---通过Queues和Pipe可以实现进程间数据的传递,但是不能实现数据的共享 ---Queues ---P ...

  5. cocos2dx 3.x(在Mac平台下利用Eclipse打包安卓apk安装包详细教程)

    最近在学习cocos2dx在MAC上如何打包apk,今天先把安装JDK和ANT的过程记来. 首先,打开终端,输入"java -version" 点击回车后,出现如下提示: 我们的M ...

  6. 移动web开发框架

    纯粹的总结一下移动web开发框架,移动web开发框架有jQuery Mobile .Sencha Touch等等,他们都来源于web开发,是成熟的框架,jQuery Mobile出自于jQuery家族 ...

  7. 《30天自制操作系统》14_day_学习笔记

    harib11a--harib11c: 继续测试性能:我们在harib10h中进行了定时链表结构的改进“消除了移位处理”.下面我们设定490个定时器(它们都被设定启动50天才超时)来测试一下改进的效果 ...

  8. Leetcode: Find Right Interval

    Given a set of intervals, for each of the interval i, check if there exists an interval j whose star ...

  9. C/C++ 结构体 函数传递

    #include <stdio.h> #include <stdlib.h> struct student{ int num; ]; double dec; }; void s ...

  10. JQuery实现广告效果(滚动切换)

    JQuery实现广告效果(滚动切换)   Html+css 效果如上图 代码: <!DOCTYPE html> <html> <head lang="en&qu ...