你能不能,请,帮我找出正确的语法,如何emplace
到一个std::unordered_map
的值包含一个std::mutex
?
下面是一个例子:
#include <mutex>
#include <unordered_map>
using SubMap = std::unordered_map<int, float>;
struct MutexedSubMap{ std::mutex mutex; SubMap subMap; };
std::unordered_map<int, MutexedSubMap> m;
// The following do not work:
// m.emplace(7, MutexedSubMap{});
// m.emplace(7);
// m.emplace(7, {});
1条答案
按热度按时间mwg9r5ms1#
emplace
将参数转发给构造函数。您可以为MutexedSubMap
编写构造函数:请注意,
m[7];
将具有相同的效果。