迭代器简单使用
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;
}