c++ - 将初始化列表传递给基于向量的构造函数
问题描述
我目前有以下代码
class test
{
public:
test(std::vector<std::string> str)
{
}
test()
{
}
const std::multimap<int, std::multimap<int, test>> _var= {
{0x01, {
{
0x0f, {"A", "B", "C", "D"}
}
}
}
};
};
int main()
{
test t;
}
错误:
main.cpp:29:9: error: could not convert '{{1, {{15, {"A", "B", "C", "D"}}}}}' from '<brace-enclosed initializer list>' to 'const std::multimap<int, std::multimap<int, test> >'
};
^
我想知道为什么将 {"A", "B", "C", "D"} 传递给std::vector<std::string> str)
失败了?关于如何解决此问题的任何建议?
解决方案
你需要另一副牙套。利用:
0x0f, {{"A", "B", "C", "D"}}
没有它,编译器会尝试test
使用 arguments构造 a "A", "B", "C", "D"
,就像 一样test{"A", "B", "C", "D"}
,这是行不通的。
推荐阅读
- java - 在java中将对象列表转换为地图
- visual-studio - 带有 Visual Studio 2022 的分析服务
- graph - 需要我的图形或条形图的表面图应该根据高度着色
- arrays - 函数 remove(atOffsets:) 仅在运行时抱怨错误类型
- python - Django:具有增量编号的自定义存储系统
- mongodb - 如何为以下查询编写 mongo 模板查询条件
- spring-websocket - 如何在 Spring Boot 测试中连接到安全的 Web 套接字端点
- php - 传递给 Illuminate\Auth\SessionGuard::login() 的 LARAVEL 7.0 参数 1 必须实现接口 Illuminate\Contracts\Auth\Authenticatable,给定数组
- javascript - 带有 IF 语句空检查的存储过程雪花
- json - dio中的最大响应大小是多少?(FormatException:未终止的字符串)