Sobes.tech
Middle
209

Πώς εκτελείτε την ενέργεια διαγραφής ενός στοιχείου από την αρχή σε ένα διάνυσμα, εάν η σειρά των στοιχείων δεν είναι σημαντική;

Απάντηση από AI

sobes.tech AI

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

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