Требуется разделить элементы вектора на удовлетворяющие предикату и остальные, сохранив относительный порядок внутри обеих групп. Подходит ли вызов ниже и какой алгоритм обеспечивает нужную гарантию?
#include <algorithm>
#include <vector>
int main() {
std::vector<int> v{4, 1, 2, 3, 6, 5};
std::partition(v.begin(), v.end(), [](int x) {
return x % 2 == 0;
});
}