Middle
214
Comment effectuer une opération de suppression d'un élément du début dans un vecteur si l'ordre des éléments n'est pas important?
Réponse de l'IA
sobes.tech IA
Эффективный способ - переместить последний элемент вектора в начало и затем удалить последний элемент.
#include <vector>
#include <algorithm> // Для std::swap
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
if (!vec.empty()) {
std::swap(vec.front(), vec.back()); // Перемещаем последний элемент в начало
vec.pop_back(); // Удаляем последний (теперь исходный первый) элемент
}
// vec теперь без исходного первого элемента, порядок неважен.
return 0;
}
Этот подход имеет сложность O(1), в отличие от O(n), которое было бы при использовании vec.erase(vec.begin()).