Если вы знаете, что будете сортировать по одному значению по возрастанию и по убыванию, тогда set is your friend. Используйте обратный итератор, если хотите «отсортировать» в обратном направлении.
Если ваши объекты сложны, и вы собираетесь сортировать различными способами на основе полей-членов в объектах, то вам, вероятно, лучше использовать вектор и сортировку. Попробуйте сделать все вставки сразу, а затем вызовите сортировку один раз. Если это невозможно, то для больших коллекций объектов может быть лучше использовать deque, чем vector.
Я думаю, что если вы заинтересованы в этом уровне оптимизации, вам лучше профилировать свой код, используя реальные данные. (Это, пожалуй, лучший совет, который кто-либо может здесь дать: может не иметь значения, что вы вызываете sort после каждой вставки, если вы делаете это только один раз в голубой луне.)