【发布时间】:2021-10-03 02:43:56
【问题描述】:
我想我在这里的初始化做错了,想知道是什么,为什么! (我不担心在这里使用 int[4] - 这是一个将由脚本生成的 const 映射)。
#include <unordered_map>
#include <string>
int main() {
const std::unordered_map<std::string, int[4]> m {
{ "alo", {2,2,1,2} },{ "bok", {1,4,0,7} }
};
}
编译:
g++ -std=c++20 foo.cpp
foo.cpp:5:52: 错误:没有匹配的构造函数用于初始化 'const std::unordered_map<:string int>'(又名 'const unordered_map
')
【问题讨论】:
-
@WhozCraig,谢谢 - 这解决了我面临的问题,但我也想知道是否可以在初始化中使用“C”风格的 int 数组构造。
-
您应该担心
int[4],因为您不能将它们用作unordered_map中的映射类型。见这里:stackoverflow.com/questions/2582529/…
标签: c++ clang unordered-map