首页 > 解决方案 > 如何将结构放置到 std::unordered_map 中?

问题描述

我想在里面和 std::unordered_map 放置一个这样的结构。

struct Foo
{
  int numberA;
  int numberB;
  char character;
  Foo(int _numberA, int _numberB, char _character) :
    numberA(_numberA), numberB(_numberB), character(_character)
  {
  }
};

std::unordered_map<std::string, Foo> foos;

foos.emplace("key", {1, 2, 'a'});

问题是我收到以下错误

main.cpp:42:8: fatal error: no matching member function for call to 'emplace'
  foos.emplace("key", {1, 2, 'a'});
  ~~~~~^~~~~~~

什么是正确的语法初始化 Foo 而不必制作副本?

标签: c++

解决方案


推荐阅读