C++ Primer 第九章 顺序容器
由于书籍上写的已经很经典了,故大部分用图片的形式来阐述概念,代码纯手打进行验证。
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 第九章 顺序容器的更多相关文章
- C++ Primer : 第九章 : 顺序容器的操作以及迭代器失效问题
顺序容器的添加.访问.删除操作以及forward_list的特殊操作,还有迭代器失效问题. 一.向容器添加元素 // array不支持这些操作 // forward_list有自己撰于的版本的inse ...
- C++ Primer : 第九章 : 顺序容器的定义、迭代器以及赋值与swap
顺序容器属于C++ STL的一部分,也是非常重要的一部分. 顺序容器包括: std::vector,包含在头文件<vector>中 std::string, 包含在头文件<strin ...
- C++ Primer 读书笔记: 第9章 顺序容器
第9章 顺序容器 引: 顺序容器: vector 支持快速随机访问 list 支持快速插入/删除 deque 双端队列 顺序容器适配器: stack 后进先出栈 queue 先进先出队列 priori ...
- C++ Primer : 第九章 : vector变长、string的其他操作以及容器适配器
vector变长机制.string的其他构造方法,添加.替换和搜索操作,string比较和数值转换,最后是容器适配器. vector对象是如何增长的 vector和string类型提供了一些成员函数, ...
- C++ Primer 5th 第9章 顺序容器
练习9.1:对于下面的程序任务,vector.deque和list哪种容器最为适合?解释你的选择的理由.如果没有哪一种容器优于其他容器,也请解释理由.(a) 读取固定数量的单词,将它们按字典序插入到容 ...
- [C++ Primer] 第9章: 顺序容器
顺序容器概述 顺序容器的类型有: 类型 说明 vector 可变长度数组. 支持快速随机访问. deque 双端队列. 支持快速随机访问. list 双向链表. 只支持双向顺序访问. forward_ ...
- 《C++ Primer》笔记 第9章 顺序容器
顺序容器类型 类型 解释 vector 可变大小数组.支持快速随机访问.在尾部之外的位置插入或删除元素可能很慢 deque 双端队列.支持快速随机访问.在头尾位置插入.删除速度很快 list 双向链表 ...
- 【c++ Prime 学习笔记】第9章 顺序容器
一个容器是特定类型对象的集合 顺序容器中元素的顺序与其加入容器的位置对应 关联容器中元素的顺序由其关联的关键字决定,关联容器分为有序关联容器和无序关联容器 所有容器类共享公有接口,不同容器按不同方式扩 ...
- C++ Primer 有感(顺序容器)
1.顺序容器的元素排列次序与元素的值无关,而是由元素添加到容器里的次序决定. 2. 顺序容器 vector 支持快速随机访问 list ...
随机推荐
- Hibernate - lazy, fetch, inverse, cascade
Inverse是hibernate双向关系中的基本概念.inverse的真正作用就是指定由哪一方来维护之间的关联关系.当一方中指定了"inverse=false"(默认),那么那一 ...
- cmdb models数据库结构
from __future__ import unicode_literals from django.contrib.auth.models import User from django.db i ...
- XSS检测工具 X5S/fiddler
x5s http://xss.codeplex.com/ 5s是fiddler的插件, 协助XSS脚本攻击的穿刺性测试. 需要手动驱动. 安全编码,unicode字符变形,ut-8编码. 5s is ...
- 51CTO专访淘宝清无:漫谈Nginx服务器与Lua语言
http://os.51cto.com/art/201112/307610.htm 说到Web服务器,也许你第一时间会想到Apache,也许你会想到Nginx.虽然说Apache依然是Web服务器的老 ...
- leetcode 111
题目描述: Given a binary tree, find its minimum depth. The minimum depth is the number of nodes along th ...
- c语言的学习秘籍
c语言其实是一环套一环胡的,最开始的是变量,然后是数组,接着是结构体,接着是链表.(其他的是c语言的语法,那东西大多了就会了.) 学习时可以从程序在电脑里的内存看起,先了解变量,将多个变量连起来就是数 ...
- OpenWrt——神奇的路由系统
鉴于最近大家对这个系统比较感兴趣而且疑问很多所以本渣就整理下我对这个系统的理解和最实用的802.1x认证的理解.还望大家多多互相交流. 如果您时间紧张直接看最后的步骤,时间充裕的请仔细阅读,理解. O ...
- [3]R语言在数据处理上的禀赋——par参数详解(一)
本文目录 公共参数列表 par 颜色相关 字体相关 字体大小相关 线条相关 符号相关 线条和符号大小相关 结束 本文首发:program-dog.blogspot.com 注1:本文也曾在csdn发布 ...
- 接口测试之HttpClient
HttpClient使用详解 Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客 ...
- Android 进阶Android 中的 IOC 框架 【ViewInject】 (上)
1.概述 首先我们来吹吹牛,什么叫IoC,控制反转(Inversion of Control,英文缩写为IoC),什么意思呢? 就是你一个类里面需要用到很多个成员变量,传统的写法,你要用这些成员变量, ...