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();          // акыркы элементти жоготуп алат
}