33,311
社区成员
发帖
与我相关
我的任务
分享
while(cin>>text)
{
contain.push_back(text);
}
for(int i=0;i<contain.size();i++)
cout<<contain[i]<<' ';
不出结果的原因是因为cin没有接收到EOF, 所以while(cin>>text)一直是true, 循环跳不出, 不进for loop, 当然没结果.
另外: 使用C++容器的时候强烈建议你使用自带的iterator, 省心省力, 而且绝对不会越界
while(cin>>text)
{
contain.push_back(text);
}
vector<string>::iterator iter;
for(iter= contain.begin();iter != contain.end();iter++)
cout<<*iter<<' ';
while(cin>>text)
{
contain.push_back(text);
}
for(int i=0;i<contain.size();i++)
cout<<contain[i]<<' ';
如上代码,你的输出语句放在while循环代码块里面了,因此你每输入一个代码,for循环中都会将重新声明局部变量i,并初始化为0
因此你想一次输出vector中的字符串的话,将for拿到while循环外面来,而且你for循环条件不应该是<contian.size()-1,而应该是<contain.size()[/quote]谢谢解答 我先前也是把for 放在while循环外面的 逐语句调试的时候发现输入结果后一直在 while条件和push两句循环 没有往下走 无输出结果。。后来就把for 放到while里面了 。。不知道是什么回事。。
while(cin>>text)
{
contain.push_back(text);
}
for(int i=0;i<contain.size();i++)
cout<<contain[i]<<' ';
如上代码,你的输出语句放在while循环代码块里面了,因此你每输入一个代码,for循环中都会将重新声明局部变量i,并初始化为0
因此你想一次输出vector中的字符串的话,将for拿到while循环外面来,而且你for循环条件不应该是<contian.size()-1,而应该是<contain.size()[/quote]
上面有错,for循环条件确实应该是<contain.size()-1;抱歉
while(cin>>text)
{
contain.push_back(text);
}
for(int i=0;i<contain.size();i++)
cout<<contain[i]<<' ';
如上代码,你的输出语句放在while循环代码块里面了,因此你每输入一个代码,for循环中都会将重新声明局部变量i,并初始化为0
因此你想一次输出vector中的字符串的话,将for拿到while循环外面来,而且你for循环条件不应该是<contian.size()-1,而应该是<contain.size()