首页 > 代码库 > 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 第九章 顺序容器