vector对象 如何初始化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vector对象 如何初始化相关的知识,希望对你有一定的参考价值。

vector<string> a; 给a赋初值“zero”,"one","two"……“nine”, 如何编程实现 ?

参考技术A 老老实实用push_back吧
由于a中的10个值都不相同(派出了用for的可能)
既然选择使用STL,就不要像楼上的朋友用数组了(虽然可以实现),因为几乎没有人那样使用vector,你就当练字吧
最然是个很简单的问题,但是没必要偷懒,用push_back最好啦
如果你的问题是输入zero到one
million,那么问题就可以得到简化了
使用for循环,然后找规律!!
额外地,你的标题有问题,vector是一个模板类(模板类不是类)vector<string>则是类,他定义的对象a,在定义时就调用了默认构造函数。后面的都是对对象的操作(楼上的则用了另一个构造函数)

用vector容器代替数组 ——使用数组初始化vector对象

在C++中,我们不能用数组直接初始化另一数组,而只能创建新的数组,然后显式的把原数组的元素逐个复制给新的数组。
按照C语言中的做法:

const size_t arry_size=6;

int int_arry[arry_size]={0,1,2,3,4,5};

int int_arry2[arry_size];

for(size_t ix=0;ix<arry_size;++i)
       int_arry2[ix]=int_arry[i];
而使用数组初始化vector对象,可以直接利用一个vector对象来初始化另一个vector对象:

#include<iostream>

#include<vector>

using namespace std;

int main(){

         //使用数组初始化vector对象
                const size_t arr_size=6;
                int int_arr[arr_size]={0,1,2,3,4,5};
                vector<int> ivec(int_arr,int_arr+arr_size);

/*传递给ivec的两个指针标出了vector初值的范围。第二个指针指向被复制的最后一个元素之后的地址空间。*/

//被标出的元素范围可以是数组的子集
       vector<int> ivec1(ivec);

       for(vector<int>::size_type i=0;i!=ivec1.size();++i)
              cout<<ivec1[i];
       cout<<endl;
       return 0;

}

讲数组转换为vector对象后,可以使用vector对象的各种函数操作,如size()获取元素个数,push_back()在末未添加新的元素等。

以上是关于vector对象 如何初始化的主要内容,如果未能解决你的问题,请参考以下文章

如何初始化动态对象数组

谈谈两种标准库类型---string和vector

vector

STL中vector的初始化

在对象初始化之前访问 C++ std::vector 对象成员

静态结构体中vector初始化