【发布时间】:2016-07-30 05:00:15
【问题描述】:
我有以下几点:
#include <vector>
#include <map>
#include <string>
int main() {
std::vector<std::map<std::string, double>> data = {{"close", 14.4}, {"close", 15.6}};
return 0;
}
当我尝试编译时,出现以下错误:
g++ -std=c++11 -Wall -pedantic ./test.cpp
./test.cpp:6:49: 错误:没有匹配的构造函数用于初始化“std::vector >”(又名 '向量,分配器>,双> >') std::vector> 数据 = {{"close", 14.4}, {"close", 15.6}};
【问题讨论】:
-
尝试将 std::map 视为 std::pairs 的列表,试试这个:
{ { {"close", 14.4} }, { {"close", 15.6} } }。包含 2 个映射的向量,每个映射有 1 对。 -
@Chad 答案属于答案框,而不是 cmets。
-
@Barry 完整的答案属于答案框。我不想写一个好的答案,所以我写了一个评论。
-
@Chad 如果您不想写答案,那就别写了。不要在你实际回答问题的地方采取这半步,但只是在错误的地方。
-
@Barry 我不同意,像“你试过了吗”这样的 cmets 很有价值,我会继续这样做。
标签: c++ c++11 dictionary vector stl