有一个值类型为引用的unordered_map是否合法?例如,std :: unordered_map 。我已经成功在VS2013上编译了它,但是不确定它是否应该这样做,因为它会导致一些奇怪的运行时错误。例如,当尝试删除元素时,将抛出“向量下标越界”异常。通过搜索发现,您不能拥有一个引用的vector,但我找不到任何关于unordered_map的信息。
更新:进一步实验表明,“向量下标越界”与引用的unordered_map无关,而是我的代码中的错误。
更新:进一步实验表明,“向量下标越界”与引用的unordered_map无关,而是我的代码中的错误。
std::reference_wrapper
。 - T.C.operator[]
需要映射类型为DefaultConstructible
(而引用并不是),因此您无法使用operator[]
。 您也无法使用花括号初始化此映射或将一个映射分配给另一个映射 ,因为它要求映射类型为CopyAssignable
。 - Igor Tandetnik