美文网首页
5/26 向量

5/26 向量

作者: 什锦甜 | 来源:发表于2018-05-26 12:00 被阅读7次
Vector 初始化、输入、输出
        vector<int> a ;                                //声明一个int型向量a
        vector<int> a(10) ;                            //声明一个初始大小为10的向量
        vector<int> a(10, 1) ;                         //声明一个初始大小为10且初始值都为1的向量
        vector<int> b(a) ;                             //声明并用向量a初始化向量b
        vector<int> b(a.begin(), a.begin()+3) ;        //将a向量中从第0个到第2个(共3个)作为向量b的初始值

除此之外, 还可以直接使用数组来初始化向量:

        int n[] = {1, 2, 3, 4, 5} ;
        vector<int> a(n, n+5) ;              //将数组n的前5个元素作为向量a的初值
        vector<int> a(&n[1], &n[4]) ;        //将n[1] - n[4]范围内的元素作为向量a的初值

       int  arr[] = { 1, 10, 15, 21, 11};
       vector<int> a( arr, arr + sizeof(arr)/sizeof(int)); //数组的大小表达方式

元素的输入和访问可以像操作普通的数组那样, 用cin>>进行输入, cout<<a[n]这样进行输出:

    #include<vector>

    using namespace std ;

    int main()
    {
        vector<int> a(10, 0) ;      //大小为10初值为0的向量a

        //对其中部分元素进行输入
        cin >>a[2] ;
        cin >>a[5] ;
        cin >>a[6] ;

        //全部输出
        int i ;
        for(i=0; i<a.size(); i++)
            cout<<a[i]<<" " ;

        return 0 ;
    }

在元素的输出上, 还可以使用遍历器(又称迭代器)进行输出控制。在vector<int> b(a.begin(), a.begin()+3); 这种声明形式中,(a.begin()、a.begin()+3)表示向量起始元素位置到起始元素+3之间的元素位置。(a.begin(), a.end())则表示起始元素和最后一个元素之外的元素位置。
向量元素的位置便成为遍历器, 同时, 向量元素的位置也是一种数据类型, 在向量中遍历器的类型为: vector<int>::iterator。 遍历器不但表示元素位置, 还可以再容器中前后移动。
在上例中讲元素全部输出部分的代码就可以改写为:

 //全部输出
    vector<int>::iterator t ;
    for(t=a.begin(); t!=a.end(); t++)
        cout<<*t<<" " ;

vector 中常用函数

    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向量进行交换
    9>. 插入 a.push_back(x) //在向量后面插入
二维向量
       vector< vector<int> > b(10, vector<int>(5));        //创建一个10*5的int型二维向量
    #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;
    }

相关文章

  • 5/26 向量

    Vector 初始化、输入、输出 除此之外, 还可以直接使用数组来初始化向量: 元素的输入和访问可以像操作普通的数...

  • 【深度学习-数学基础】向量和矩阵的范数归纳

    向量的范数 定义一个向量为:a=[-5,6,8,-10]。 向量的 1 范数:向量的各个元素的绝对值之和,上述向量...

  • 向量的范数

    定义一个向量为:a=[-5,6,8,10]。向量的1范数:向量的各个元素的绝对值之和,上述向量a的1范数结果就是:...

  • 向量的基本运算_线性代数_day2

    向量的加法 向量加法: 向量加法就是通过平移向量,原点到最终终点的距离。结果是,下面是结果步骤 先向X移动5个单位...

  • 1.数组与矩阵

    1.矩阵是二维数组。 数组分为5类 1.空数组 a=[]2.标量 a=[5]3.向量 行向量...

  • R语言向量是循环补齐的

    1.what? 两个向量的运算x <- c(1,3,5,6,2)y <- c(3,2,5)向量的长度length(...

  • R语言创建向量、数据框以及数据框的操作

    作业:2019.04.23- 笔记整理 1.创建一个向量元素为a,b,e,2,5 创建向量时,先给向量命名,如le...

  • 生信学习Day5-森森

    生信学习第5天,昨天学习Rstudio基本操作后,今天继续学习R语言的向量、数据框。 向量 1. 标量和向量的区分...

  • 第二天

    R对象的类型 1、原子向量 x1<-c(1:5) x1为原子型向量...

  • day7—xiaode

    1.基础数据结构 1.1 向量 # 创建向量a <-c(1, 2, 3, 4, 5, 6) b<-c("one",...

网友评论

      本文标题:5/26 向量

      本文链接:https://www.haomeiwen.com/subject/ymducftx.html