3.12
(a)正确,创立一个vector,该向量的元素是vector对象。vector对象的类型是int。
(b)不正确,两个向量的类型不同,无法初始化。
(c)正确,其有十个值为“null”的string类型元素。
3.13
a. 一个元素,0。 b.十个元素,每个值都是0。 c.十个元素,每个值都是42。 d.一个元素,其值为10。
e.两个元素,分别为10和42。 f.十个元素,每个值都是string的默认初始值。 g.十个值,每个值为“hi”。
3.14
#include <iostream>
#include "Sales_item.h"
#include <string>
#include <cctype>
#include <vector>
using namespace std;
int main()
{
vector<int> num;
int a;
while(cin>>a)
{
num.push_back(a);
}
}
3.15
#include <iostream>
#include "Sales_item.h"
#include <string>
#include <cctype>
#include <vector>
using namespace std;
int main()
{
vector<string> str;
string word;
while(cin>>word)
{
str.push_back(word);
}
}
3.16
#include <iostream>
#include "Sales_item.h"
#include <string>
#include <cctype>
#include <vector>
using namespace std;
int main()
{
vector<int> v1;
decltype(v1.size()) s = 0;
cout << s;
for(int i = 0;i<v1.size();i++)
cout << v1[i];
}
3.17
#include <iostream>
#include "Sales_item.h"
#include <string>
#include <cctype>
#include <vector>
using namespace std;
int main()
{
string word;
vector<string> text;
while(cin >> word)
{
text.push_back(word);
}
for(auto &w :text)
{
for(auto &v :w)
v=toupper(v);
cout << w << endl;
}
}
3.18
不合法,可以用 ivec.push_back(42)来代替。
3.19
1.vector<int> v1 (10,42) 2.vector<int> v1 {42,42,42,42,42,42,42,42,42,42}
3. vector<int> v1;
for(int i = 0;i<=9;i++)
v1.push_back(42);
第一种方法比较好,当想让vector中的元素是相同的值的时候,使用构造比较方便简单。
3.20
#include <iostream>
#include "Sales_item.h"
#include <string>
#include <cctype>
#include <vector>
using namespace std;
int main()
{
int x;
vector<int> num;
while(cin>>x)
{
num.push_back(x);
}
decltype(num.size()) s;
s=num.size();
for(int i=0;i<s-1;i++)
{
cout << num[i]+num[i+1]<< endl;
}
for(int i=0;i<=s/2-1;i++)
{
cout << num[i]+num[s-1-i]<<endl;
}
}