Sobes.tech
Middle

Ποια είναι η πολυπλοκότητα της λειτουργίας push_back στο std::vector;

sobes.tech AI

Απάντηση από AI

Κατά μέσο όρο, η αποσβεστική είναι O(1).

Στην χειρότερη περίπτωση, O(N), όπου N είναι το τρέχον μέγεθος του διανύσματος. Αυτό συμβαίνει κατά την επαναπροσαρμογή μνήμης, όταν η τρέχουσα χωρητικότητα του διανύσματος δεν επαρκεί για ένα νέο στοιχείο. Σε αυτήν την περίπτωση, δημιουργείται ένας νέος buffer μεγαλύτερης χωρητικότητας, αντιγράφονται εκεί τα στοιχεία και ο παλιός buffer απελευθερώνεται.