Спасибо за просмотр этого вопроса заранее.
Я пытаюсь заказать следующий список товаров:
Bpgvjdfj,Bvfbyfzc
Zjmvxouu,Fsmotsaa
Xocbwmnd,Fcdlnmhb
Fsmotsaa,Zexyegma
Bvfbyfzc,Qkignteu
Uysmwjdb,Wzujllbk
Fwhbryyz,Byoifnrp
Klqljfrk,Bpgvjdfj
Qkignteu,Wgqtalnh
Wgqtalnh,Coyuhnbx
Sgtgyldw,Fwhbryyz
Coyuhnbx,Zjmvxouu
Zvjxfwkx,Sgtgyldw
Czeagvnj,Uysmwjdb
Oljgjisa,Dffkuztu
Zexyegma,Zvjxfwkx
Fcdlnmhb,Klqljfrk
Wzujllbk,Oljgjisa
Byoifnrp,Czeagvnj
В следующем порядке:
Bpgvjdfj
Bvfbyfzc
Qkignteu
Wgqtalnh
Coyuhnbx
Zjmvxouu
Fsmotsaa
Zexyegma
Zvjxfwkx
Sgtgyldw
Fwhbryyz
Byoifnrp
Czeagvnj
Uysmwjdb
Wzujllbk
Oljgjisa
Dffkuztu
Это сделано:
Я заполняю unordered_map парами, затем сортирую и добавляю каждое имя в список. Это можно увидеть в следующем коде:
westIter = westMap.begin();
std::string westCurrent = westIter->second;
westList.push_front(westCurrent);
for(int i = 0; i < 30; i++)
{
if(westMap.find(westCurrent) != westMap.end())
{
//find pair in map where first iterator is equal to "westCurrent"//append second iterator of pair to list
}
westIter++;
}
Примечание: я не уверен, что «push_front» является правильным в данный момент времени, так как я только что вставил первое значение.
Мой вопрос: может ли кто-нибудь дать мне некоторое представление о том, как я могу это сделать? Поскольку я не уверен в том, как лучше и правильно ли я думаю. Любое понимание будет оценено.
Есть только одна слабость в вашем плане. Сначала вам нужно найти первого человека в сети, мистера Нью-Йорка.
Ваш алгоритм предполагает, что линия начинается с первого парня. Чтобы это работало, вы должны сначала отсканировать всю карту, чтобы найти одно имя, которое не появляется как второй элемент. Это мистер Нью-Йорк, и вы можете перейти оттуда. push_back
это то, что вам нужно использовать здесь.