文章

C++ Primer 习题3.21-3.23

3.21

#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main()
{
    vector<string> x{"hello","world","NG"};
    auto i = x.begin();
    while (x.begin() != x.end(),i!=x.end()) {  //注意:迭代器i一定不能等于x.end(),否则溢出.
        cout << *i << endl;
        ++i;

    }

    return 0;
}

3.22

#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main()
{
    string x{"helloworldNG"};
    //注意,书上有多一个条件,就是&& !i->empty(
    //这是错误的,因为string_iterator没有这个函数)
    //经过1半个多小时的讨论研究,书上是没错的
    //empty是不能在容器以外的地方用的
    //例如string使用了begin之后,实际上是指向一个
    //类型为char的元素,是没有empty函数的
    //但是指向vector<string>就可以的
    //例如 vector<string>{"hello","world","ng"}
    for (auto i = x.begin();i != x.end() ;++i) {
        *i = toupper(*i);
    }
    cout << x << endl;
    return 0;
}

3.23

#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main()
{
    vector<int> x{2,4,5,6,7,8,9,11,22,31};
    for (auto i = x.begin();i != x.end();++i) {
        *i *= 2;
        cout << *i  << endl;
    }
    return 0;
}
原文来自:C++ Primer 习题3.21-3.23,尊重自己,尊重每一个人;转发请注明来源!
0 0

发表评论