c++ - 循环遍历向量时如何获得正确的输出?
问题描述
循环通过此向量时,我没有得到正确的输出,我不知道为什么
vector<string> words = {"once","i","was","seven"};
for(int i=0;i<=words.size();i++){
cout<<words[i]<<endl;
for(int j =0; j<=words.size();j++){
cout<<words[j]<<endl;
}
}
这段代码应该打印:once once i was seven i once i was seven was once i was seven seven once i was seven
,但它打印:once once i was seven
,我该如何修复它
解决方案
在打印“一旦我七岁”之后,它会崩溃,因为单词大小为 4,并且您正在循环 5 个元素(从 i = 0 到 4 并且 words[4] 将是未定义的行为)。只需从条件中删除等号即可。
vector<string> words = {"once","i","was","seven"};
for(int i = 0; i < words.size(); i++){
cout << words[i] << endl;
for(int j = 0; j < words.size(); j++){
cout << words[j] << endl;
}
}
推荐阅读
- c# - 本地定义的枚举标志和枚举定义的标志有什么区别?
- javascript - 从数组中修剪对象中的日期并按最近日期对数组进行排序
- x11 - xhost:未加载“libXmuu.1.dylib”库
- php - 如何在 PHP 中以可变数量深入到多维数组中?
- php - 文本替换:PHP/正则表达式
- python - 如何序列化和反序列化 OOP Python 代码?
- php - 当我运行命令“make:auth”并重新加载 Laravel 时,链接会显示,但是当我单击它们时,它会显示“未找到”
- javascript - JavaScript 构造函数监听这个变量的变化
- python - 如何将循环函数的 1,000 个结果转换为数字数组
- php - PHP SoapClient,我只是无法让它工作