Вопрос о том, сохраняет ли мультикарта порядок вставки идентичных ключей, неоднократно задавался, и я думаю, что довольно ясно, что стандарт говорит, что это не так. Хотя, по-видимому, C ++ 0x какое-то время говорил, что сделал, а потом снова нет?
В любом случае, мне нужна структура, в которой я могу искать по ключу и перебирать ее в порядке вставки для идентичных ключей. Что означает, что я не могу использовать составные ключи, как тогда, как я могу искать по ключу?
Итак, поддерживает ли VC ++ порядок вставки идентичных ключей для мультикарт? (Или где мне искать реализацию Microsoft, потому что я не смог ее найти?) Если это не так, какова лучшая альтернатива? повышение :: мультииндексных
Что если бы я вместо простой вставки без позиции всегда сначала просматривал нужную позицию и передавал последний элемент для идентичного ключа в качестве подсказки позиции (например, использовал второй итератор equal_range)? Возможно, это сработает (меня интересует только g ++ и компилятор Windows). Я думаю, что это можно сравнить с этим элементом, затем со следующим, затем с радостью и вставкой? Или не может, так как древовидная структура может означать, что на самом деле она может не переключать магический лист для идентичных ключей, и если неправильный потомок свободен, вставьте его туда?
Кстати, я никогда не понимаю ответов, которые предполагают использование двух структур. Конечно, это делает удаления довольно дорогими?