Как вставить 3 элемента или другое нечетное количество элементов в unordered_map? - PullRequest
0 голосов
/ 18 апреля 2019

Я работаю над каким-то транзитным приложением, у меня есть станции, и я помещаю соединения между ними в unordered_map.Соединение: вылет_отправки, прибытие_поста, время поездки.

Как видите, есть три элемента.Вот что я уже пробовал.

uint64_t fr=strtoul(from.c_str(),NULL,10);
uint64_t t=strtoul(to.c_str(),NULL,10);
uint64_t tf_time=strtoul(tfr.c_str(),NULL,10);
connections_hashmap.insert({{fr,t},tf_time});

Я получаю это:

 error: no matching function for call to ‘std::unordered_map<long unsigned int, std::unordered_map<long unsigned int, long unsigned int> >::insert(<brace-enclosed initializer list>)’                                                                     connections_hashmap.insert({{fr,t},tf_time});    

Я также пытался сформировать пару {tf_time, NULL}, но я не работал.

1 Ответ

0 голосов
/ 18 апреля 2019

Вы должны определить соединение как структуру, а затем вставить это под некоторым значимым идентификатором:

struct connection {
  string departure_station_id;
  string arrival_station_id;
  string travel_time;
};

auto connections_hashmap = new unordered_map<string, connection>();
connections_hashmap.insert("connectionID", {"Powell", "Embarcadero", "3"});

Это позволит вам позже получить структуру по connectionID.

...