Спасибо, что рассмотрели этот вопрос заранее.
Я пытаюсь заказать следующий список предметов:
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
Это делается:
- Берем первую пару и помещаем имена в список
- Используя второе имя пары, найдите пару, в которой оно используется в качестве первого имени.
- Добавьте второе имя этой пары в список
- Повторите 2 и 3
Я заполняю 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» правильный в данный момент времени, так как я вставил только первое значение.
Мой вопрос: может ли кто-нибудь дать мне некоторое представление о том, как я могу это сделать? Поскольку я не уверен, как лучше и правильно ли мое мышление. Любое понимание будет оценено.
unordered_map
??? - person Karthik T   schedule 29.01.2013