如何将空 vector 放入 std::map
?例如,如果我有 std::map<int, std::vector<int>>
,我想要 map[4]
包含一个空 std::vector<int>
,我能叫什么?
最佳答案
如果您使用operator[](const Key&)
,映射将自动放置一个值初始化(即在std::vector
, 默认构造的)值(如果您访问不存在的元素)。请参阅此处:
http://en.cppreference.com/w/cpp/container/map/operator_at
(自 C++ 11 起,细节有点复杂,但就您而言,这才是重要的)。
这意味着如果您的 map 是空的并且您执行了map[4]
,它会很容易地为您提供对空(默认构造的) vector 的引用。分配空 vector 是不必要的,尽管它可能会让您的意图更加清晰。
关于c++ - 将空 vector 放入 std::map(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49754586/