Извините, если вопрос очень тривиальный.
У меня есть вектор карт:
typedef map<char, int> edges;
typedef vector<edges> nodes;
nodes n;
Теперь, скажем, я хочу подтолкнуть игрушечный край.Я пробовал разные вещи, и то, что я работал, это
edges e; //declare an edge
e['c'] = 1; //initialize it
n.push_back(e); //push it to the vector
Как я могу просто выдвинуть пару значений ребра ('c' и 2), не объявляя переменную и не инициализируя ее?
Что-то вроде:
n.push_back(edges('c',2));
, но компилятор выдает ошибку
error: no matching function for call to ‘std::map<char, int>::map(char, int)’