c++ 新手 向量赋值却不能输出

任仁人 2017-12-28 04:39:38

如图 代码
请问为什么没有输出啊,一下午碰到好几个同样的问题 求解答,不胜感激
...全文
571 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2018-01-09
  • 打赏
  • 举报
回复
“多一少一”问题占程序员常犯错误的10%以上! 避免“多一少一”问题的方法之一是将比如<10甚至<5的数代入程序片断,掰手指头心算验证一下程序到底应该写为 x、x-1、x+1中的哪个? <、<=、==、>、>=中的哪个?
boot_black 2018-01-08
  • 打赏
  • 举报
回复
此处我也学习了。
yshuise 2018-01-04
  • 打赏
  • 举报
回复
死循环
  • 打赏
  • 举报
回复
看来我来晚了。
AlbertS 2017-12-29
  • 打赏
  • 举报
回复
4楼正解,要想提前申请10个空间可以这样做:

vector<string> str;
str.reserve(10);
任仁人 2017-12-28
  • 打赏
  • 举报
回复
引用 5 楼 zhangli00 的回复:
楼上说的正确,push_back是从第11位开始了,你可以尝试cout<<str[i+10]; 此外,结束的时候不要用哪个什么keep windows open 函数,用system("pause");
嗯嗯 懂啦
任仁人 2017-12-28
  • 打赏
  • 举报
回复
引用 4 楼 yyclovezl 的回复:
因为 vector<string> str(10); //意思是放入10个string类型的元素,并初始化为空, 其实内部已经有10个元素了,你再使用str.push_back(..) 其实是放在第11位了.以此类推~ 所以正确的做法,应该将(10) 去掉.就ok了. 另外: 你既然用了for语句 限制了i<10 ,那内部为什么还要用 if去判断i等于10 然后就break呢? 这个if语句是永远不可能被执行到的哟. 最后你想用这个keep windows open 来保持cmd不关闭, 这个方法似乎也太繁琐了吧~ 很多软件都是自带这个功能的呀~~~
懂啦,,谢谢,,谢谢
ashang1988 2017-12-28
  • 打赏
  • 举报
回复
for(int i=0;i<=10;i++) 编译有时候会报警
csulizhang 2017-12-28
  • 打赏
  • 举报
回复
楼上说的正确,push_back是从第11位开始了,你可以尝试cout<<str[i+10]; 此外,结束的时候不要用哪个什么keep windows open 函数,用system("pause");
yyclovezl 2017-12-28
  • 打赏
  • 举报
回复
因为 vector<string> str(10); //意思是放入10个string类型的元素,并初始化为空, 其实内部已经有10个元素了,你再使用str.push_back(..) 其实是放在第11位了.以此类推~ 所以正确的做法,应该将(10) 去掉.就ok了. 另外: 你既然用了for语句 限制了i<10 ,那内部为什么还要用 if去判断i等于10 然后就break呢? 这个if语句是永远不可能被执行到的哟. 最后你想用这个keep windows open 来保持cmd不关闭, 这个方法似乎也太繁琐了吧~ 很多软件都是自带这个功能的呀~~~
任仁人 2017-12-28
  • 打赏
  • 举报
回复
引用 1 楼 weixin_28949185 的回复:
有人吗cccccc
引用 2 楼 q478741723 的回复:
for(int i=0;i<=10;i++)
原因不是这个吧 在上面已经定义了int i
q478741723 2017-12-28
  • 打赏
  • 举报
回复
for(int i=0;i<=10;i++)
任仁人 2017-12-28
  • 打赏
  • 举报
回复
有人吗cccccc

64,652

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧