У меня есть следующий:Как я могу инициализировать std :: vector элементов std :: map?
#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: error: no matching constructor for initialization of 'std::vector >' (aka 'vector, allocator >, double> >') std::vector> data = {{"close", 14.4}, {"close", 15.6}};
Попробуйте представить std :: map как список std :: pairs, попробуйте следующее: {{{"close", 14.4}}, {{"close", 15.6}}} '. Вектор из 2 карт, каждый с 1 парой. – Chad
@ Ответы на вопросы принадлежат в поле ответа, а не как комментарии. – Barry
@Barry Полностью сформированные ответы принадлежат в поле ответа. Мне не хотелось писать хороший ответ, поэтому я написал комментарий. – Chad