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
}