я иду из PHP, где я бы сделал
$um['Im a string'][1] = 3;
для двумерного ассоциативного массива, где первый ключ — строка, второй — целое число, а значение также является целым числом. Я пытаюсь сделать то же самое в C ++. вот моя попытка:
// experiment.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"#include <unordered_map>
#include <vector>
#include <string>
using std::vector;
using std::string;
using std::unordered_map;
int _tmain(int argc, _TCHAR* argv[])
{
unordered_map <string,vector<int,int>> um;
um["Im a string"][1] = 3;
printf("Out: %d", um["Im a string"][1]);
return 0;
}
очевидно, это не правильный синтаксис;
vector<int,int>
не правильно (vector
не ассоциативный контейнер), вы, вероятно, хотите вложенный unordered_map<int>
, Так:
unordered_map <string,unordered_map<int,int>> um;
Других решений пока нет …