Назад к вопросам
Junior — Middle
90
Как ведет себя структура данных в виде массива при удалении элемента, и что при этом происходит с остальными элементами?
Ответ от нейросети
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 сдвигаются влево, чтобы заполнить пустое место.