【发布时间】:2012-06-20 07:57:59
【问题描述】:
我正在尝试创建指向我的对象的指针数组的哈希。
哈希键是对象类型的 int,数组是要渲染的对象的列表。
我想做的是:
unordered_map<int, vector<Object*> > drawQueue;
drawQueue.clear(); // new empty draw queue
for ( ... ) {
drawQueue.at(type).push_back(my_obj);
}
所以我对 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);
}
但现在我真的迷路了,因为我不知道如何在 unordered_map 的插入中创建/初始化/任何空的 vector...
还是我这样做完全错误?
【问题讨论】:
-
你看过 operator[] 吗?还是 insert() 的实际文档?
标签: c++ stl vector unordered-map