Это полностью зависит от вашего варианта использования вставки / извлечения.В любом случае, вы должны использовать std::pair
или boost::tuple
в качестве типа вашего элемента, поскольку они уже реализуют желаемое лексикографическое упорядочение.
Что касается контейнера и вставки / извлечения: вы можете жить без случайногодоступ?Вам нужен доступ ко всем элементам (используйте std::set
) или только к вершине (используйте std::priority_queue
с std::vector
)?Если вам нужен произвольный доступ, используйте std::vector
: вставляете ли вы отдельные элементы?Тогда это зависит от того, как вы извлекаете: все элементы, один раз, после того, как вы закончите вставку?Просто используйте push_back
и std::sort
, когда вы закончите.Или ты много добываешь?Затем сохраните массив отсортированным, используя std::vector::insert
и std::lower_bound
.