У меня есть vector<int> number_vector
, который содержит {1, 0, 0, 0, 0, 0 ,0}
. Мне нужно перебрать эту number_vector
, например, 4 раза, и удалить первое наименьшее число на каждой итерации, т.е. на первой итерации я буду удалять значение 0
с индексом 1
, на следующей итерации я будуудалите 0
, который находится в индексе 1
, и т. д. Я делаю это прямо сейчас следующим образом:
int n = 7;
int d = 4;
vector<int> number_vector{1, 0, 0, 0, 0, 0 ,0};
for (int counter = 0; counter < n - d; counter++)
{
int index = distance(number_vector.begin(), min_element(number_vector.begin(), number_vector.end()));
if (index != number_vector.size() - 1)
{
number_vector[index] = move(number_vector.back());
}
number_vector.pop_back();
// number_vector.erase(number_vector.begin() + index);
}
Проблема в том, что если я запускаю код выше, в концеnumber_vector
имеет {1, 0, 0, 0}
, в то время как он должен иметь {1, 0, 0}
, а для других случаев, таких как n = 4
, d = 2
и number_vector{3, 7, 5, 9}
, конечный number_vector
имеет правильное значение, то есть 79
. Несколько советов?