使用数组来初始化 vector 对象,只需要 指明拷贝区域的首元素地址和尾后地址就可以了,下面通过两组程序及其运行结果来深入理解一下:
程序一:
#include <iostream>
#include <vector>
#include <iterator>
using std::vector;
using std::begin;
using std::end;
using std::cout;
using std::endl;
int main()
{
int arr[] = {11, 32, 41, 25, 67, 100, 88, 233}; // 列表初始化内置数组
// 指出拷贝区域范围,使用数组初始化 vector 对象
vector<int> iv(begin(arr), end(arr));
for (auto c : iv) // 输出 vector 对象的内容以验证结果
cout << c << ' ';
cout << endl;
return 0;
}
程序一的运行结果为:
11 32 41 25 67 100 88 233
,与期望中完全一致
程序二:
#include <iostream>
#include <vector>
using std::vector;
using std::cout;
using std::endl;
int main()
{
int arr[] = {11, 32, 41, 25, 67, 100, 88, 233}; // 列表初始化内置数组
// 指出拷贝区域范围,使用数组初始化 vector 对象
vector<int> iv(arr + 2, arr + 7);
for (auto c : iv) // 输出 vector 对象的内容以验证结果
cout << c << ' ';
cout << endl;
return 0;
}
程序二的运行结果为:
41 25 67 100 88
,与期望中完全一致
需要特别注意的是, vector 对象不能用来初始化数组 ,这个过程是不可逆的。