首页 > 代码库 > C++ Primer 第九章 顺序容器
C++ Primer 第九章 顺序容器
由于书籍上写的已经很经典了,故大部分用图片的形式来阐述概念,代码纯手打进行验证。
1.顺序容器类型:vector、deque、list、forword_list、array、string。
2.顺序容器概述:
3.小结
4. 验证代码如下:
1 #include <iostream> 2 #include <vector> 3 #include <array> 4 #include <string> 5 #include <list> 6 using namespace std; 7 8 int main() 9 {10 //vector <int> Vec = {0,1,2,3,4,5,6,7,8,9};//vs2010 显示此初始化错误,但书中正确;11 vector <int> Vec(10,1);12 cout<<"vector元素:"<< Vec[1] <<endl;13 14 //标准库array具有固定大小15 array <int,10> Arr = {0,1,2,3,4,5,6,7,8,9};//array容器必须指定大小;16 array <int,10> Arr1 = {12};//Arr1的元素为12,0,0,...,0;17 Arr = Arr1;//将Arr元素替换为Arr1,两者必须类型相同;18 Arr.swap(Arr1);//一定程度上,同上式功能,swap为交换成员,交换两者元素;19 swap(Arr,Arr1);//交换两者元素,速度比拷贝快得多;20 21 //swap操作交换必须为两个相同类型容器的内容,大小无关;22 //下面交换说明为:交换后svec1为有24个元素的string类型的容器;23 //svec2为10个的string类型的容器;24 vector<string> svec1(10);25 vector<string> svec2(24);26 swap(svec1,svec2);27 28 //添加元素29 //采用array和forward_list之外,每个顺序容器(包括string类型)都支持push_back30 //下面每次读取一个string到word中,然后追加到容器尾部31 string word;32 while(cin >> word)33 svec1.push_back(word);34 35 //push_front 此操作将元素插入到容器头部 vector不支持36 list <int> ilist;37 // 将元素添加到ilist的开头,将0,1,2,3添加到ilist开头38 for (int i = 0; i!= 4;++i)39 ilist.push_front(i);40 41 // 在容器中的特定位置添加元素 使用insert42 //值得一提的是 insert是插入到指定位置之前的位置处43 vector<string> svec;44 list <string> slist;45 //等价于调用slist.push_front("Hello")46 slist.insert(slist.begin(),"Hello");47 //vector不支持push_front 用insert实现48 svec.insert(svec.begin(),"Hello");49 //还可插入多个值 插入10个“a”50 svec.insert(svec.end(),10,"a");51 52 //在容器中访问元素的成员函数:front back 下标和at53 //删除元素 erase 以及pop_back()删除尾元素 pop_front()删除首元素54 55 //改变容器大小resize srray不支持resize 因为其初始化时大小固定56 list<int>ilist1(10,42);// 定义10个int类型数据 都为4257 ilist1.resize(15);// 将5个值为0的元素添加到ilist的末尾58 ilist1.resize(25,-1);// 将10个值为-1的元素添加到ilist的末尾59 ilist1.resize(5);// 从ilist末尾删除20个元素60 61 62 system("pause");63 return 0;64 }
C++ Primer 第九章 顺序容器
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。