Самое большое различие - std::list
- это связанный список, тогда как std::multiset
- это древовидная структура (обычно это дерево RB). Это означает, что доступ к элементу в std::list
имеет O(N)
доступ, в то время как std::multiset
имеет O(logN)
.
Это также означает, что итерация std::multiset
с begin()
до end()
даст вам отсортированные данные, а итерация std::list
даст вам порядок вставки данных.