Junior — Middle
Чӣ гуна метавон як унсури тасодуфиро аз массив (вектор) дар вақти доимӣ хориҷ кард, агар тартиби унсурҳо муҳим набошад?
sobes.tech AI
Ҷавоб аз AI
Агар массив (вектор) ішіндегі элементтердің тәртібі маңызды болмаса, кез келген элементті тұрақты уақытта жоюға болады, оны жойылатын элементпен массивтің соңғы элементін ауыстырып, содан кейін массивтің өлшемін 1-ге азайту арқылы.
Бұл барлық келесі элементтерді жылжытудан аулақ болуға мүмкіндік береді, ол әдетте сызықтық уақытты алады.
C++ мысалы:
#include <vector>
void removeAt(std::vector<int>& vec, size_t index) {
if (index >= vec.size()) return;
vec[index] = vec.back(); // жойылатын элементті соңғы элементпен ауыстырады
vec.pop_back(); // соңғы элементті жояды
}