在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()在末未添加新的元素等。

转载于:https://www.cnblogs.com/mzct123/p/5535726.html

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐