• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++STL中vector的初始化

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

vector的初始化有很多方式,在N维初始化时还会一些容易出现错误的地方。下面进行总结

以下的总结均以int作为模板参数

一维vector的初始化

vector的构造函数通常来说有五种,如下:

  1. vector():创建一个空vector
  2. vector(int nSize):创建一个vector,元素个数为nSize
  3. vector(int nSize,const t& t):创建一个vector,元素个数为nSize,且值均为t
  4. vector(const vector&):复制构造函数
  5. vector(begin,end):复制[begin,end)区间内另一个数组的元素到vector中

注意第三条,如果传入的是两个参数的话,第一个参数是大小,第二是个初值。
下面为测试代码以及运行结果:

#include<iostream>
#include<vector>
using namespace std;

int main(){
    ////////////////
    //构造函数部分
    ////////////////

    //空vector
    vector<int> vec1();
    cout<<"vec1[0] = "<<vec1[0]<<endl;
    //构造一行空vector
    vector<int> vec2(1);
    cout<<"vec2[0] = "<<vec2[0]<<endl;
    //构造一行指定值得vector
    vector<int> vec3(5,1);
    cout<<"vec3[0-5] = ";
    for(int i=0;i<5;i++){
        cout<<' '<<vec3[i]<<' ';
    }
    cout<<endl;
    //利用拷贝构造函数构造
    vector<int> vec4(vec3);
    cout<<"拷贝构造 vec4[0-5] = vec3[0-5] = ";
    for(int i=0;i<5;i++){
        cout<<' '<<vec4[i]<<' ';
    }
    cout<<endl;
    //复制前闭后开的一段到vector中
    int a[5]={1,2,3,4,5};
    vector<int> vec5(a,a+5);
    cout<<"vec5[0-5] = ";
    for(int i=0;i<5;i++){
        cout<<' '<<vec5[i]<<' ';
    }
    cout<<endl;
}

结果如下:

二维vector的初始化

先看怎么写:

vector<vector <int> > ivec(m ,vector<int>(n));

简单来说就是要利用上面的第三种方式,让每个元素的初值是一个一维的vector。另外前面的模板参数里面也是一个嵌套的模式。

这里有一点要非常注意,有的编译器在int后面的两个> >之间一定要有一个空格,否则编译器会报错,因为它会认为>>是一个c++的运算符(有的不用这样。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#中PictureBox异步加载图片发布时间:2022-07-13
下一篇:
C语言数组作业总结发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap