Sobes.tech
Middle
220

Wie führt man eine Operation zum Entfernen eines Elements vom Anfang eines Vektors durch, wenn die Reihenfolge der Elemente nicht wichtig ist?

Antwort von AI

sobes.tech KI

Эффективный способ - переместить последний элемент вектора в начало и затем удалить последний элемент.

#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()).