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

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值