如果我有下面一段代码顺序的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