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;
    }

       

  • 相关阅读:
    leetcode 122. Best Time to Buy and Sell Stock II
    leetcode 121. Best Time to Buy and Sell Stock
    python 集合(set)和字典(dictionary)的用法解析
    leetcode 53. Maximum Subarray
    leetcode 202. Happy Number
    leetcode 136.Single Number
    leetcode 703. Kth Largest Element in a Stream & c++ priority_queue & minHeap/maxHeap
    [leetcode]1379. Find a Corresponding Node of a Binary Tree in a Clone of That Tree
    正则表达式
    十种排序算法
  • 原文地址:https://www.cnblogs.com/7750-13/p/7202749.html
Copyright © 2011-2022 走看看