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

Posted weller

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用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容器代替数组 ——使用数组初始化vector对象的主要内容,如果未能解决你的问题,请参考以下文章

为啥说传vector的效率很低????

STL Vector容器

条目十三《尽量使用vector和string来代替使用数组》

vector代替数组

vector容量器的应用

C++常用STL总结