You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++循环未输出预期结果:vector数量字段重复打印问题

问题根源

错误出在输出逻辑的变量作用域设置:你把索引变量i的初始化语句int i{0};写在了范围for循环的内部,每一次循环迭代都会重新创建变量i并赋值为0,所以每次获取的都是quantity下标为0的元素(值为10),循环末尾的++i的结果会在下一次迭代被覆盖,无法起到索引递增的作用。

修复方案

方案1:把索引变量的初始化移到循环外部

// Display data
int i{0};
for(auto item: items){
    cout << "Item: " << item << " - " << "Quantity: " << quantity.at(i) << endl;
    ++i;
    cout << "--------------------" << endl;
}

方案2:改用普通for循环同步遍历两个等长vector(更推荐)

// Display data
// 直接以下标为基准同步取值,逻辑更清晰不易出错
for(int i = 0; i < items.size(); ++i){
    cout << "Item: " << items.at(i) << " - " << "Quantity: " << quantity.at(i) << endl;
    cout << "--------------------" << endl;
}

该方案无需手动维护独立的索引计数,后续如果修改录入商品的数量,也不需要手动调整循环终止条件,适配性更强。


内容的提问来源于stack exchange,提问作者Heyale

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 22:27:00