练习:
3.12:下列vector对象的定义有不正确的吗?如果有,请指出来。对于正确的,描述其执行结果;对于不正确的,说明其错误的原因。
(a) vector<vector<int>> ivec;
(b) vector<string> svec = ivec;
(c) vector<string> svec(10, "null");
解答:
(a)是正确的,定义了一个名为ivec的vector对象,其中的每个元素都是vecto<int>对象。
(b)是错误的,svec的元素类型时string,而ivec的元素类型是int,因此不能使用ivec初始化svec。
(c)是正确的,定义了一个名为svec的vector对象,其中含有10个元素,每个元素都是字符串null。
3.13:下列的vector对象各包含多少个元素?这些元素的值分别是多少?
(a) vector<int> v1; (b) vector<int> v2(10);
(c) vector<int> v3(10, 42); (d) vector<int> v4{10};
(e) vector<int> v5{10, 42}; (f) vector<string> v6{10};
(g) vector<string> v7(10, "hi");
解答:
(a)的元素数量为0。
(b)的元素数量为10,每一个元素都被初始化为0。
(c)的元素数量为10,每一个元素都被初始化为42。
(d)的元素数量为1,元素的值为10。
(e)的元素数量为2,元素的值分别为10和42。
(f)的元素数量为10,每一个元素都被初始化为空串。
(g)的元素数量为10,每一个元素都被初始化为"hi"。