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一个字母一个字母地输出,但是每次输出都是一个单词,并且陷入了死循环……
展开
 我来答
kaixingui2012
推荐于2018-03-03 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6253万
展开全部
试试以下代码
#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;
}
wwylele
2014-09-06 · TA获得超过2523个赞
知道小有建树答主
回答量:1037
采纳率:0%
帮助的人:1081万
展开全部
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;

}
追问
不好意思呀,我先看到了上一个回复,正好也解决了我的问题,谢谢你的解答!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式