Junior — Middle
Hoe gedraagt de datastructuur in de vorm van een array zich bij het verwijderen van een element, en wat gebeurt er met de andere elementen?
sobes.tech AI
Antwoord van 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 сдвигаются влево, чтобы заполнить пустое место.