C++Primer第五版 3.4.1节练习

练习3.21:请使用迭代器重做3.3.3节(第94页)的第一个练习。

练习3.22:修改之前那个输出text第一段的程序,首先把text的第一段都改写成大写形式,然后再输出它。

练习3.23:编写一段程序,创建一个含有10个整数的vector对象,然后使用迭代期,将所有元素的值都变成原来的两倍。输出vector对象的内容,检验程序是否正确。

答案:见云盘程序。

练习3.21

#include <iostream>
#include <vector>

using namespace std;

int main()
{
    vector<int> v1;
    for (auto it = v1.begin(); it != v1.end(); ++it)
        cout << *it << " ";
        cout << endl;

    vector<int> v2(10);
    for (auto it = v2.begin(); it != v2.end(); ++it)
        cout << *it << " ";
        cout << endl;

    vector<int> v3(10,42);
    for (auto it = v3.begin(); it != v3.end(); ++it)
        cout << *it << " ";
        cout << endl;

    vector<int> v4{10};
    for (auto it = v4.begin(); it != v4.end(); ++it)
        cout << *it << " ";
        cout << endl;

    vector<int> v5{10,42};
    for (auto it = v5.begin(); it != v5.end(); ++it)
        cout << *it << " ";
        cout << endl;

    vector<string> v6{10};
    for (auto it = v6.begin(); it != v6.end(); ++it)
        cout << *it << " ";
        cout << endl;

    vector<string> v7{10,"hi"};
    for (auto it = v7.begin(); it != v7.end(); ++it)
        cout << *it << " ";
        cout << endl;

    return 0; 
} 

练习3.22

#include <iostream>
#include <string>
#include <vector>

using namespace std;

int main()
{
    string word;
    vector<string> text;
    //while (cin >> word)
    while(getline(cin , word))
        text.push_back(word);

    for (auto it = text.begin(); it != text.end() && !(*it).empty(); ++it)
    {
    //  for (auto j = (*it).begin(); j != (*it).end(); ++j)
        //  j = toupper(j);

        for (auto &j : *it)  
        // 引用加不加 区别很大,不信你试试,引用加了,代表已经修改整个都变 
            j  = toupper (j);
        cout << *it <<endl;
    } 
    return 0;
}

练习3.23

#include <iostream>
#include <vector>

using  namespace std;

int main()
{
    vector<int> ivec(10, 42);
    for (auto it = ivec.begin(); it != ivec.end(); ++it)
        {
        *it += *it;
        cout << *it << " "; 
        }
        cout << endl;
 return 0;
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值