第3章 字符串、向量和数组(C++ Primer 第五版)

迭代器简单使用

3.22题目:要求输入若干行英文句子到一个vector中,然后输出每一句的大写形式。

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

using namespace std;

int main()
{
    vector<string> v;
    string s;
    while(getline(cin,s)){
        v.push_back(s);
    }
    for(auto it=v.begin();it!=v.end();++it){
        for(auto it2=it->begin();it2!=it->end();++it2){
            *it2=toupper(*it2);
        }
        cout<<*it<<endl;
    }
    return 0;
}

3.23题目:输入一些数到vector中,然后输出他们及他们的二倍

#include<iostream>
#include<string>
#include<vector>
#include<ctime>
#include<cstdlib>

using namespace std;

int main()
{
    srand((unsigned)time(NULL));
    vector<int> v;
    for(int i=0;i<10;i++){
        v.push_back(rand()%100);
    }
    for(auto it=v.cbegin();it!=v.cend();it++){
        cout<<*it<<"\t";
    }
    cout<<endl;
    for(auto it=v.begin();it!=v.end();it++){
        *it*=2;
        cout<<*it<<"\t";
    }
    cout<<endl;
    return 0;
}

二维数组的遍历

#include<iostream>

using namespace std;

using int_arr=int[4];

int main()
{

    int a[3][4]={{1,2,3,4},{3,4,5,6},{5,6,7,8}};
    cout<<"利用范围for语句遍历二维数组:"<<endl;
    for(int (&row)[4]:a){
        for(int &col:row){
            cout<<col<<" ";
        }
        cout<<endl;
    }
    cout<<"利用auto和范围for语句遍历二维数组:"<<endl;
    for(auto &row:a){
        for(auto &col:row){
            cout<<col<<" ";
        }
        cout<<endl;
    }
    cout<<"利用using或typedef和范围for语句遍历二维数组:"<<endl;
    for(int_arr &row:a){
        for(int &col:row){
            cout<<col<<" ";
        }
        cout<<endl;
    }
    cout<<"利用普通for语句和下标运算遍历二维数组:"<<endl;
    for(int i=0;i!=3;i++){
        for(int j=0;j!=4;j++){
            cout<<a[i][j]<<" ";
        }
        cout<<endl;
    }
    cout<<"利用普通for语句和指针遍历二维数组:"<<endl;
    for(int (*p)[4]=a;p!=a+3;++p){
        for(int *q=*p;q!=*p+4;q++){
            cout<<*q<<" ";
        }
        cout<<endl;
    }

    return 0;
}

猜你喜欢

转载自blog.csdn.net/ccnuacmhdu/article/details/80952040