Sobes.tech
Back to questions
Junior — Middle
91

Как ведет себя структура данных в виде массива при удалении элемента, и что при этом происходит с остальными элементами?

Answer from AI

sobes.tech AI

При удалении элемента из массива в C/C++ происходит сдвиг всех последующих элементов на одну позицию влево, чтобы заполнить образовавшийся пробел.

Например, если удалить элемент с индексом i, то элементы с индексами от i+1 до конца массива копируются на позицию на один индекс меньше. Это обеспечивает непрерывность данных в массиве.

Важно учитывать, что такой сдвиг может быть затратным по времени, особенно для больших массивов, так как требует копирования элементов.

Пример на C++ с использованием std::vector:

#include <vector>
#include <iostream>

int main() {
    std::vector<int> v = {1, 2, 3, 4, 5};
    v.erase(v.begin() + 2); // удаляем элемент с индексом 2 (значение 3)

    for (int val : v) {
        std::cout << val << " ";
    }
    // Вывод: 1 2 4 5
}

Здесь после удаления элемента со значением 3, элементы 4 и 5 сдвигаются влево, чтобы заполнить пустое место.