Sobes.tech
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();          // соңғы элементті жояды
}