zoukankan      html  css  js  c++  java
  • Vector的使用方法和自我理解

    vector容器的作用,在于你在储存一些数的时候,可以很方便的改变他的大小,利用下标可以同数组一样轻松的遍历,却比数组强的是:vector可以删去不用的元素,已达到我们获取前一个数值;

    1 基本操作(vector包含在头文件<vector>,作为一种容器使用)

    (1).声明对象——vector<T>  variable;

    (2).插入元素 *(尾部) ——variable.push_back(a);

             无限制的添加元素,容器的大小随着需求改变;

           *(任意位置)——variable.insert(variable.begain()+2);

    (3).访问元素 *(下标访问)——

        for(int i=0;i<a.size();i++)
            cout << a[i]<< " ";

           *(迭代器访问)——

    vector<int> ::iterator t;//迭代器类型的变量
        for(t=a.begin();t!=a.end();t++)
            cout << *t << " ";

    (4).删除元素 *(删除点)——veriable.erase(veriable.begin()+index)

                   删除index+1位置上的元素;

           *(域删除)——veriable.erase(veriable.begin()+x,veriable.end()- y)

                  删除从x到y的区间;

    (5).清空——vrriable.clear();

    (6).获取最末尾的元素——veriable.back();

    (7).删除最后一个元素——veriable.back();

    (8).获取第一个元素——veriable.front();

    二、排序方法;

    升序(调用Sort()——包含在头文件<algorithm> )

    sort(a.begin(),a.end(),);

    降序(重写bool Comp(const & a ,const &b)函数)

    bool Comp(const int &a,const int &b)
    {
        return a>b;
    }
    
    int main()
    {
         sort(a.begin(),a.end(),Comp);
    }
    

     

    三、vector的二维性;

    由于STL的容器都支持动态增长,可以随时使用vector.resize()来改变容器的容量,所以使用vector创建的数组就具有动态创建的特性。

    1.声明——*vector<vector <int> >array(m) (m必不可少)

    int main()
    {
        vector<vector <int> > array(4);
        vector<vector <int> > :: iterator oss; //二位数组的横向量;
        vector<int> :: iterator oaa;//二维数组的纵向量;
        for(oss = array.begin();oss!=array.end();oss++)
        {
            (*oss).resize(10);
        }
    
        cout << "Row" << " :" << array.size()
        << "      " << "Column" << " :" << array[0].size() <<"
    ";
         //array表示行;下标和迭代器可以混用;
          
        for(oss = array.begin();oss!=array.end();oss++)
        {
            cout << '[';
            for(oaa = (*oss).begin();oaa!=(*oss).end();oaa++ )
            {
                cout << (*oaa) << " ";
            }
            cout << ']';
            cout << "
    ";
        }
    
        return 0;
    }

         ——*vector<int> array[m];

           一维不具备vector容器的性质;

    int main()
    {
        vector<int>ss[4];
        for(int i = 0;i<4;i++)
            ss[i].resize(i);
        cout << "Row :" << sizeof(ss)
            <<"     " << "Column :" <<
            ss[0].size() << endl;
        cout << "
    ";
        for(int i=0;i<4;i++)
        {
            cout << "[  ";
            for(int j=0;j<ss[i].size();j++)
            {
                cout << "   " << ss[i][j];
            }
            cout << "   ]";
            cout << "
    " <<"
    ";
        }
        return 0;
    }

       

  • 相关阅读:
    华为机试题 二叉查搜索树 判断两序列是否为同一二叉搜索树序列
    华为机试题 火车进站
    Linux命令学习 rmdir
    Linux命令学习 rm
    Linux命令学习 mkdir
    Linux命令学习 du
    Linux命令学习 pwd
    Linux命令学习 ls
    Linux命令学习 cd
    伪代码编程过程
  • 原文地址:https://www.cnblogs.com/7750-13/p/7202749.html
Copyright © 2011-2022 走看看