Если вы вставляете элементы в отсортированный в настоящее время вектор в первой позиции после всех элементов, у которых он больше, то вектор остается отсортированным.
Вы можете найти позицию с помощью std::lower_bound
std::vector<int> currently_sorted{ 1, 2, 5, 6, 7 };
for (auto i : { 3, 4, 10, 9, 8 })
{
auto it = std::lower_bound(currently_sorted.begin(), currently_sorted.end(), i);
currently_sorted.insert(it, i);
}
assert(std::is_sorted(currently_sorted.begin(), currently_sorted.end()));