练习3.12
下列vector对象的定义有不正确的吗?如果有,请指出来。对于正确的,描述其执行结果;对于不正确的,说明其错误的原因。
(a) vector<vector<int>> ivec;
(b) vector<string> svec = ivec;
(c) vector<string> svec(10, "null");
解答:
(a)(c)是正确的。
(b)不能将一个vector<vector<int>>对象赋给vector<string>对象。
练习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 (感谢a6112489同学的勘误)
(c) 10个,都是42
(d) 1个,10
(e) 2个,10和42
(f) 10个,空字符
(g) 10个,“hi”
练习3.14
编写一段程序,用cin读入一组整数并把它们存入一个vector对象。
解答:
#include <iostream>
#include <vector>
using namespace std;
int main(){
vector<int> ivec;
int num;
while (cin >> num){
ivec.emplace_back(num);
}
}
练习3.15
改写上题的程序,不过这次读入的是字符串。
解答:
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main(){
vector<string> wvec;
string word;
while (cin >> word){
wvec.emplace_back(word);
}
}