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 ...
随机推荐
- webstorm svn 报错
webstorm svn 报错Cannot run program "svn": CreateProcess error=2, The system cannot find ...
- MongoDB安装并设置为windows服务以使其开机自启
在MongoDB的官方下载windows平台的压缩zip文件,地址:https://www.mongodb.org/dr/fastdl.mongodb.org/win32/mongodb-win32- ...
- php日期时间函数和数学函数
<?php //第一部分:日期和时间函数 ----------------------------- time(); //int time(void),返回当前时间的时间戳 mktime(); ...
- Jmeter关联
一.Jmeter关联的方式: Jmeter中关联可以在需要获取数据的请求上 右键-->后置处理器 选择需要的关联方式,如下图有很多种方法可以提取动态变化数据: 二.正则表达式提取器: 1.比如 ...
- SQL Server代理警报
使用SQL Server代理警报的前提条件1.创建操作员,接收消息的用户2.创建警报,满足某种条件触发警报,并作出响应(执行作业或/和通知操作员)3.配置数据库邮件,用于发送消息通知4.SQL Ser ...
- Vcenter server 5.5克隆模板(创建ISO镜像)
1.进入Vcenter server 5.5控制台 --- 选择虚拟机和模版. 2.右键 XP_32 --- 模版 ---- 克隆为模板(Vcenter server 5.5连接的VMware ESX ...
- java 删除目录、 文件
示例 import java.io.File; public class fileTest { public static void main(String []args){ String strVe ...
- EF CodeFirst 如何通过配置自动创建数据库<当模型改变时>
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精 本篇为进阶篇,也是弥补自己之前没搞明白的地方,惭愧 ...
- Bootstrap modal被sliverlight掩盖。
Bootstrap中的modal被silverlight遮挡了,解决方案: <object id='xx'....> ... <param name="windowless ...
- 卷积神经网络CNN(Convolutional Neural Networks)没有原理只有实现
零.说明: 本文的所有代码均可在 DML 找到,欢迎点星星. 注.CNN的这份代码非常慢,基本上没有实际使用的可能,所以我只是发出来,代表我还是实践过而已 一.引入: CNN这个模型实在是有些年份了, ...