Есть следующий код, состоящий из двух частей
Часть первая:
typedef std::vector< std::pair<int, int> > TVector;
// на этапе создания вектора мы знаем предварительный размер, который как правило больше реального
TVector Vector;
Vector.reserve(PrereservedAmount);;
// заполняем Vector несколькими десятками тысяч элементов (в том числе и повторяющимися) методом циклического добавления содержимого небольшого вектора
Vector.insert(some_Vector.begin(), some_Vector.end());
и вторая:
// сортируем вектор
std::sort(Vector.begin(), Vector.end());
// на выходе нужна отсортированая последовательность уникальных элементов
TVector::iterator EndOfUniqueRange = std::unique(Vector.begin(), Vector.end());
В результате регулярное добавление занимает ~15% времени выполнения, сортировка ~60%.
Какие можно предпринять шаги чтобы ускорить все это хозяйство?
спасибо