2009-02-09 1 views
7

Предположим, у меня есть два элемента: a и b, которые сравнивают их. Таким образом, < b является ложным, а b < a является ложным. Если эти элементы вставляются в std :: multiset (или std :: multimap) в качестве ключей, есть ли у меня какие-либо гарантии их окончательного упорядоченного заказа?В C++ std :: multiset поддерживает стабильный порядок сортировки?

Я проверил несколько ссылок, но я не смог найти ответ. У меня возникает соблазн подумать, что нет никаких гарантий и что это не зависит от каждой конкретной реализации.

Спасибо.

+0

Возможный дубликат [Does std :: multiset гарантирует порядок вставки?] (Https://stackoverflow.com/questions/2643473/does-stdmultiset-guarantee-insertion-order) –

ответ

9

This thread означает, что он не гарантируется действующим стандартом, но встречается всеми известными текущими реализациями и дает ссылку на стандартный проект C++ 0x, который включает гарантию.

+0

Спасибо за быстрый ответ. – Imbue

+5

Для записи гарантия C++ 0x - «вставить в верхнюю границу». –

+0

Awesome. Мы пока не используем C++ 11, но я собираюсь добавить модульный тест в наш тестовый пакет, чтобы обеспечить поведение компилятора в версиях, которые мы используем. – mskfisher