如果我有下面一段代碼順序的std :: unordered_multimap元素
std::unordered_multimap<std::string, std::vector<double>> myMap;
std::vector<double> v1, v2, v3;
// init v1, v2, v3....
myMap.insert(std::make_pair<std::string, std::vector<double>("vec", v1));
myMap.insert(std::make_pair<std::string, std::vector<double>("vec", v2));
myMap.insert(std::make_pair<std::string, std::vector<double>("vec", v3));
如果我訪問與迭代器的值,他們總是會在這個順序:v1, v2, v3
所以基本上如果我插入相同的鍵的元素,但不同的值,他們總是保留插入的順序?
使用無序容器的最佳方式是根本不考慮順序。完全不依賴訂單。如果您出於某種原因查看元素的順序,則可能是使用了錯誤的容器。不保證它會保留廣告訂單。 – goji
@Troy我可以使用std :: multimap嗎? – djWann
如果你需要在一個容器中使用插入順序,你可能需要類似boost的multi_index。還有其他關於這個問題。 – goji