C++primer第五版第三章答案(2)

来源:互联网 发布:微信蓝精灵软件 编辑:程序博客网 时间:2024/05/16 07:24

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;    }}


阅读全文
0 0