zoukankan      html  css  js  c++  java
  • C++

                                                          C++ - SLT - vector 整理笔记

    一 基本概念

    向量(vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。vector<T> 容器的大小可以自动增长,从而可以包含任意数量的元素;因此类型参数 T 不再需要模板参数 N。(类似的如:array<N,T>)只要元素个数超出 vector 当前容量,就会自动分配更多的空间。只能在容器尾部高效地删除或添加元素。可以简单的认为,向量是一个能够存放任意类型的动态数组。

    二 头文件

    #include<vector>

    三 创建一个vector类型的容器

      vector<类型名> 向量名   

    (1)vector<int> vv;                       //定义一个int型的向量vv

    (2)vector<int> vv(5);                  //定义一个容量大小为5的向量vv

    (3)vector<int> vv(5,8);                //定义一个容量大小为5的向量vv,且初始值都为8的向量

    (4)vector<int> b(a);                  //声明并用向量a初始化向量b

    (5)vector<int> b(a.begin(), a.begin()+3) ;      //将a向量中从第0个元素到第2个(共3个)元素作为向量b的初始值

    (6)用数组来初始化向量

       int n[] = {1, 2, 3, 4, 5} ;

        vector<int> a(n, n+5) ;                //将数组n的前5个元素作为向量a的初值
        vector<int> a(&n[1], &n[4]) ;          //将n[1] - n[4]范围内的元素作为向量a的初值

    四 常用函数

    (1)push_back()    在序列的末尾添加一个元素

     1 #include<iostream>
     2 #include<vector>
     3 using namespace std;
     4 int main()
     5 {
     6     vector<int> a;
     7     a.push_back(2);             //将元素2添加进a
     8     cout<<a[0]<<endl;
     9     return 0;
    10 }

      输出:2

    (2)pop_back()      去掉数组的最后一个数据

    #include<iostream>
    #include<vector>
    using namespace std;
    int main()
    {
        vector<int> a;
        a.push_back(1);
        a.push_back(2);
        a.pop_back();
        for(int i=0;i<a.size();i++)                //将最后一个元素2删掉
            cout<<a[i]<<endl;
        return 0;
    }

      输出:1

    (3)insert()        插入一个元素

     1 #include<iostream>
     2 #include<vector>
     3 using namespace std;
     4 int main()
     5 {
     6     vector<int> vv;
     7     for(int i = 0;i < 6; i++)
     8     {
     9         vv.push_back(i); //此时为 0 1 2 3 4 5
    10     }
    11     vv.insert(vv.begin() + 2, -1);
    12     int num=vv.size();
    13     int i=0;
    14     while(i<num-1)
    15     {
    16         cout<<vv[i]<<" ";
    17         i++;
    18     }
    19     cout<<vv[6]<<endl;
    20     return 0;
    21  }

      输出:0 1 -1 2 3 4 5

    (4)clear()      用来清空vector中所有元素

    #include<iostream>
    #include<vector>
    using namespace std;
    int main()
    {
        vector<int> vv;
        for(int i=1; i<=3; i++)
        {
            vv.push_back(i); //将1,2,3依次插入vi末尾
        }
        cout<<"清除前:";
        for(int i = 0;i < vv.size();i++)
        {
            cout<<vv[i]<<" ";
        }
        cout<<endl;
        vv.clear();
        cout<<"清除后:" ;
        for(int i = 0;i < vv.size();i++)
        {
            cout<<vv[i]<<" ";
        }
        return 0;
    }

      输出:

        清除前:1 2 3
        清除后:

    
    
  • 相关阅读:
    02-链路层
    01-TCP/IP概述
    ARM Cortex-A9 (tiny 4412)
    STM32 f407 温湿度采集报警
    arduino mega 避障报距小车
    归纳法调试
    python 数据类型Ⅲ(字典)
    Python 数据类型Ⅱ(列表,元祖)
    Python 数据类型(str,int,bool)
    Python while循环&格式化输出&运算符
  • 原文地址:https://www.cnblogs.com/yxbl/p/12292714.html
Copyright © 2011-2022 走看看