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

C++如何将vector插入到map<int, vector<int>>容器中

代码错误修正方案

你的代码存在两处语法/逻辑错误:

  • 内层循环增量错误:控制内层循环的变量是j,但你写了i++,会导致j始终为0触发死循环,同时外层循环的i值也会被异常篡改。
  • map插入方法调用错误:std::map没有push_back成员方法,你构造好的temp对象就是需要存入map的value,直接作为键值对的第二个参数传入即可。

修正后可运行代码

#include <map>
#include <vector>

int main(){
    std::map<int, std::vector<int>> m;
    for(int i = 0; i < 10; i++){
        std::vector<int> temp;
        // 修正增量为j++
        for(int j = 0; j < 5; j++){
            temp.push_back(j);
        }
        // 修正插入逻辑,直接传入temp
        m.insert({i, temp});
    }
    return 0;
}

如果你使用C++11及以上版本,还可以省略内层循环,直接用初始化列表构造vector,代码更简洁:

#include <map>
#include <vector>

int main(){
    std::map<int, std::vector<int>> m;
    for(int i = 0; i < 10; i++){
        m.insert({i, {0,1,2,3,4}});
    }
    return 0;
}

内容的提问来源于stack exchange,提问作者him.himanshu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 03:36:02