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

       

  • 相关阅读:
    Atitit.struts2体系结构大总结
    Atitit.hibernate体系结构大总结
    Atitit. 最佳实践 QA----降低cpu占有率--cpu占用太高怎么办
    Atitit.软件GUI按钮与仪表盘(01)--js区-----js格式化的使用
    Atitit.软件控件and仪表盘(23)--多媒体子系统--视频输出切换控制cvbs av s-video Ypbpr pal ntsc
    Atitit.软件开发概念说明--io系统区--特殊文件名称保存最佳实践文件名称编码...filenameEncode
    Atitit.软件按钮与仪表盘(13)--全文索引操作--db数据库子系统mssql2008
    Atitit.软件GUI按钮与仪表盘(01)--报警系统--
    Atitit.软件开发概念(11)--网络子系统--url编码 空格问题URLEncoder java js php
    Atitit.软件仪表盘(0)--软件的子系统体系说明
  • 原文地址:https://www.cnblogs.com/7750-13/p/7202749.html
Copyright © 2020-2023  润新知