向量vector理解

学习总结vector
  1. vector是一种向量类型,它是一种对象实体,可以容纳许多种其他类型实体,称其为容器。vector是c++STL的重要一员,使用时包含头文件#include<vector>
  2. vector可以有四种定义方式

            (1)vector<int> a(10);//定义了10个整数元素的向量,但并没有给出初值,vector<T>是模板形式, T可以是任何合法的数据类型

            (2)vector<int> b(10, 1);//定义了10个整数元素的向量,且每个元素的初值为1,而这种形式是数组难以做到的,数组只能通过循环来成批的赋给相同的初值

            (3)vector<int> c(b);//用另一个现成的向量来创建一个向量

            (4)vector<int> d(b.begin(), b.begin+3);//定义了其值依次为b向量中第0个到第二个(共3个)元素的向量

      3.vector输出元素的两种循环方式,例

       int a[7] = {1,2,5,3,7,9,8};

       voctor<int> v(a, a + 7);//数组的长度也可由sizeof(a)/sizeof(a[0])确定

       //循环方式一

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

       //循环方式二

       for(vector<int> :: iterator it = v.begin(); it != v.end(); it++)
       cout << *it << " ";//*it是指针间访形式,他的意义是it指向的元素值


向量在c++编程中是一种是频率很高的数据类型,不仅仅是因为数据的顺序排列性在生活中常见,还因为向量有一些整体赋值、判空和元素添加等,特别是向量可以自动伸展,容量可以自动增大,使得对一些不确定数量的顺序性操作数据,带来了极大的方便

<span style="font-size:14px;">    1>. a.size()                 //获取向量中的元素个数


    2>. a.empty()                //判断向量是否为空


    3>. a.clear()                //清空向量中的元素


    4>. 复制
        a = b ;            //将b向量复制到a向量中


    5>. 比较
        保持 ==、!=、>、>=、<、<= 的惯有含义 ;
        如: a == b ;    //a向量与b向量比较, 相等则返回1


    6>. 插入 - insert
        ①、 a.insert(a.begin(), 1000);            //将1000插入到向量a的起始位置前
        
        ②、 a.insert(a.begin(), 3, 1000) ;        //将1000分别插入到向量元素位置的0-2处(共3个元素)
        
        ③、 vector<int> a(5, 1) ;
            vector<int> b(10) ;
            b.insert(b.begin(), a.begin(), a.end()) ;        //将a.begin(), a.end()之间的全部元素插入到b.begin()前


    7>. 删除 - erase
        ①、 b.erase(b.begin()) ;                     //将起始位置的元素删除
        ②、 b.erase(b.begin(), b.begin()+3) ;        //将(b.begin(), b.begin()+3)之间的元素删除


    8>. 交换 - swap
        b.swap(a) ;            //a向量与b向量进行交换</span>


 对于二维向量vector<vector<T>>

如果一个向量的每一个元素是一个向量,则称为二维向量

例:vector<vector<int> > a;//这里,两个“>”间的空格是不可少的

vector< vector<int> > b(10, vector<int>(5));        //创建一个10*5的int型二维向量

实际上创建的是一个向量中元素为向量的向量。同样可以根据一维向量的相关特性对二维向量进行操作。

</pre><pre name="code" class="cpp"><span style="font-size:14px;">#include<iostream>
    #include<vector>

    using namespace std ;

    int main()
    {
        vector< vector<int> > b(10, vector<int>(5, 0)) ;

        //对部分数据进行输入
        cin>>b[1][1] ;
        cin>>b[2][2] ;
        cin>>b[3][3];

        //全部输出
        int m, n ;
        for(m=0; m<b.size(); m++)           //b.size()获取行向量的大小
        {
            for(n=0; n<b[m].size(); n++)    //获取向量中具体每个向量的大小
                cout<<b[m][n]<<" " ;
            cout<<"\n" ;
        }

        return 0;
    }</span>

这些就是一些小小的关于vector的理解了哈

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值