小编use*_*416的帖子

如何将元素插入 std::unordered_map<int, vector<Object*>>

我正在尝试创建指向我的对象的指针数组的散列。

哈希键是对象类型的 int,数组是要呈现的对象列表。

我想要做的是:

unordered_map<int, vector<Object*> > drawQueue;
drawQueue.clear(); // new empty draw queue

for ( ... ) {
   drawQueue.at(type).push_back(my_obj);
}
 
Run Code Online (Sandbox Code Playgroud)

所以我对 STL 内容的细微差别还不够熟悉,因为我收到一个异常,说 out_of_bounds,当密钥不存在时会发生这种情况。

所以我想我需要先创建密钥,然后添加到向量中:

if (drawQueue.count(type)) {
    // key already exists
    drawQueue.at(type).push_back(my_obj);
} else {
    //key doesn't exist
    drawQueue.insert(type, vector<Object*>); // problem here
    drawQueue.at(type).push_back(my_obj);
}
Run Code Online (Sandbox Code Playgroud)

但是现在我真的迷路了,因为我不知道如何创建/初始化/vector插入unordered_map...

还是我这样做完全错误?

c++ stl unordered-map vector

4
推荐指数
2
解决办法
3万
查看次数

标签 统计

c++ ×1

stl ×1

unordered-map ×1

vector ×1