c++ vector<string>用iterator遍历
intmain(){stringarr[4]={"hello","world","name","address"};vector<string>ivec(arr,arr+...
int main(){
string arr[4]={"hello","world","name","address"};
vector<string> ivec(arr,arr+4);
for(vector<string>::iterator iter1=ivec.begin();iter1!=ivec.end();++iter1){
for(vector<string>::size_type sty=0;sty!=(*iter1).size();++sty){
cout<<(*iter1).size()<<endl;
cout<<iter1[sty]<<endl;
}
}
return 0;
}
如上代码,我想要实现将ivec中的每个string一个字母一个字母地输出,但是每次输出都是一个单词,并且陷入了死循环…… 展开
string arr[4]={"hello","world","name","address"};
vector<string> ivec(arr,arr+4);
for(vector<string>::iterator iter1=ivec.begin();iter1!=ivec.end();++iter1){
for(vector<string>::size_type sty=0;sty!=(*iter1).size();++sty){
cout<<(*iter1).size()<<endl;
cout<<iter1[sty]<<endl;
}
}
return 0;
}
如上代码,我想要实现将ivec中的每个string一个字母一个字母地输出,但是每次输出都是一个单词,并且陷入了死循环…… 展开
2个回答
展开全部
试试以下代码
#include <iostream>
#include <vector>
#include <string>
using namespace std ;
int main(){
string arr[4]={"hello","world","name","address"};
vector<string> ivec(arr,arr+4);
for(vector<string>::iterator iter1=ivec.begin(); iter1!=ivec.end(); ++iter1 ){
cout<<(*iter1).size()<<endl; //每个单词输出一次长度
for( size_t sty=0;sty!=(*iter1).size(); ++sty){
cout<< (*iter1)[sty] ; //*iter1才是string数据
}
cout <<endl ;
}
return 0;
}
展开全部
int main(){
string arr[4]={"hello","world","name","address"};
vector<string> ivec(arr,arr+4);
for(vector<string>::iterator iter1=ivec.begin();iter1!=ivec.end();++iter1){
for(vector<string>::size_type sty=0;sty!=(*iter1).size();++sty){
//cout<<(*iter1).size()<<endl;//这句意义不明
cout<<(*iter1)[sty]<<endl;//cout<<iter1[sty]<<endl;//应先通过迭代器寻址再使用[]算符
}
}
return 0;
}
追问
不好意思呀,我先看到了上一个回复,正好也解决了我的问题,谢谢你的解答!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询