Sobes.tech
Junior — Middle

Tartib elementlar muhim bo'lmagan taqdirda, qanday qilib tasodifiy elementni massiv (vektor)dan doimiy vaqtda o'chirish mumkin?

sobes.tech AI

AIdan javob

Agar massiv (vektor) ichidagi elementlarning tartibi muhim bo'lmasa, istalgan elementni doimiy vaqtda o'chirish mumkin, uni o'chiriladigan element bilan massivning oxirgi elementini almashtirib, so'ngra massivning o'lchamini 1 ga kamaytirish orqali.

Bu barcha keyingi elementlarni siljitishni oldini oladi, bu odatda chiziqli vaqtni oladi.

C++ misoli:

#include <vector>

void removeAt(std::vector<int>& vec, size_t index) {
    if (index >= vec.size()) return;
    vec[index] = vec.back(); // o'chiriladigan elementni oxirgi element bilan almashtiradi
    vec.pop_back();          // oxirgi elementni o'chiradi
}