zoukankan      html  css  js  c++  java
  • 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_back
    30     //下面每次读取一个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      // 在容器中的特定位置添加元素 使用insert
    42      //值得一提的是 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 下标和at
    53      //删除元素 erase 以及pop_back()删除尾元素 pop_front()删除首元素
    54 
    55      //改变容器大小resize srray不支持resize 因为其初始化时大小固定
    56      list<int>ilist1(10,42);// 定义10个int类型数据 都为42
    57      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 }
  • 相关阅读:
    函数length属性
    vue面试题
    ES6引进新的原始数据类型symbol使用及特性
    jq动画
    防抖和节流
    this指向
    前端:性能优化之回流和重绘
    react生命周期
    vue生命周期
    react-redux的实现原理
  • 原文地址:https://www.cnblogs.com/ggYYa/p/5903251.html
Copyright © 2011-2022 走看看