Sobes.tech
Middle

როგორ განვახორციელოთ ელემენტის წაშლის ოპერაცია ვექტორის დასაწყისში, თუ ელემენტების სია მნიშვნელოვანია?

sobes.tech AI

პასუხი AI-სგან

ეფექტური გზა არის ბოლო ელემენტის გადატანა ვექტორის დასაწყისში და შემდეგ ბოლო ელემენტის წაშლა.

#include <vector>
#include <algorithm> // std::swap-ისთვის

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};

    if (!vec.empty()) {
        std::swap(vec.front(), vec.back()); // ბოლო ელემენტის გადატანა დასაწყისში
        vec.pop_back();                  // ბოლო ელემენტის წაშლა (ახლა პირველი)
    }

    // vec ახლა გარეშე პირვანდელი პირველი ელემენტის, წესრიგი მნიშვნელობა არაა.

    return 0;
}

ამ მეთოდს აქვს სირთულე O(1), განსხვავებით vec.erase(vec.begin())-ისგან, რომელიც O(n) იქნება.