• 初入水:vector


    ---恢复内容开始---Vector 是一个类模板。不是一种数据类型。 Vector<int>是一种数据类型

          类的作用,是一种顺序容器,支持随机访问,可动态分配空间(扩充:销毁旧内存,更新迭代器),线性的数据结构

      《《《《    扩充:》》》》

    vector容器类型

       vector容器是一个模板类,可以存放任何类型的对象(但必须是同一类对象)。vector对象可以在运行时高效地添加元素,并且vector中元素是连续存储的。

    1.对象的操作:

    1.push_back   在数组的最后添加一个数据

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

    3.at               得到编号位置的数据

    4.begin           得到数组头的指针(用于迭代器

    5.end             得到数组的最后一个单元+1的指针 (指向末端元素的下一个,不存在的元素

    6.front        得到数组头的引用

    7.back            得到数组的最后一个单元的引用

    8.max_size     得到vector最大可以是多大

    9.capacity       当前vector分配的大小

    10.size           当前使用数据的大小(返回v中元素的个数,v.size()

    11.resize         改变当前使用数据的大小,如果它比当前使用的大,者填充默认值

    12.reserve      改变当前vecotr所分配空间的大小

    13.erase         删除指针指向的数据项

    14.clear          清空当前的vector

    15.rbegin        将vector反转后的开始指针返回(其实就是原来的end-1)

    16.rend          将vector反转构的结束指针返回(其实就是原来的begin-1)

    17.empty        判断vector是否为空 (v.empty())

    18.swap         与另一个vector交换数据

    2.使用

    a:数组习惯使用    (已知大小,索引元素

       oo: vector<int>v(10);类似定义数组,可用v[i]来访问

       oo:vector<int>v(10,-1);定义了v,包含10个int型初始值为-1

       oo: vector<int>v(a,a+6);int a{1,2,3,4,5,6,7};将a中的6个元素拷贝到v中

    1.  vector<string>s;//vector可被另一个vector初始化,也可赋值给另一个vector
    2.  void init_and_assigh()
    3.  {
    4.     vector<string>names(s);//另一个vector初始化
    5.     s=names;//拷贝
    6.  }

    b:STL习惯用法定义空vector,插入元素,使用迭代器

    //两种方法数据的存入和输出

     1 #include<cstdio>
     2 #include<vector>
     3 #include<iostream>
     4 using namespace std;
     5 int  main()
     6 {
     7     int i=0;
     8     vector<int>v;
     9     for(i=0;i<10;i++)
    10     {
    11         v.push_back(i);
    12     }
    13 /****************
    14     for(i=0;i<v.size();i++)
    15     {
    16         cout<<v[i]<<" ";
    17     }
    18     cout<<endl;
    19 *******************/
    20     vector<int>::iterator iter;
    21     for(iter=v.begin();iter!=v.end();iter++)
    22     {
    23         cout<<*iter<<endl;
    24     }
    25     return 0;
    26 }//两种方法数据的存入输出
    View Code

     //对二维的定义

     1 #include<cstdio>
     2 #include<vector>
     3 #include<iostream>
     4 using namespace std;
     5 int  main()
     6 {
     7     int i=0;
     8     vector<int>v;
     9     for(i=0;i<10;i++)
    10     {
    11         v.push_back(i);
    12     }
    13    /* for(i=0;i<v.size();i++)
    14     {
    15         cout<<v[i]<<" ";
    16     }
    17     cout<<endl;*/
    18     vector<int>::iterator iter;
    19     for(iter=v.begin();iter!=v.end();iter++)
    20     {
    21         cout<<*iter<<endl;
    22     }
    23     return 0;
    24 }
    View Code
     1 #include<stdio.h>
     2 #include<vector>
     3 #include<iostream>
     4 using namespace std;
     5 int  main()
     6 {
     7    int i=0,j=0;
     8    vector<vector<int> >Array;
     9    vector<int>line;
    10    for(j=0;j<10;j++)
    11    {
    12        Array.push_back(line);//初始化,存入元素
    13        for(i=0;i<9;i++)
    14        {
    15            Array[j].push_back(i);
    16        }
    17    }
    18    for(j=0;j<10;j++)
    19    {
    20        for(i=0;i<Array[j].size();i++)
    21        {
    22            cout<<Array[j][i]<<" ";
    23        }
    24        cout<<endl;
    25    }
    26     return 0;
    27 }
    View Code

    初学鄙陋,只看到了皮毛。

    ---恢复内容结束---

  • 相关阅读:
    centos 6 升级gcc
    linux fdisk 分区
    centos使用163的源
    工作流发布成功但不能自动启动
    可怕的断电
    FTP 之 550 permission denied
    Track & Trace
    AutoKey思想的應用(二)
    Windows登錄過程淺析
    snapshot.exe出現異常
  • 原文地址:https://www.cnblogs.com/yinqx/p/4708446.html
Copyright © 2020-2023  润新知