Junior — Middle
Kā var izņemt jebkuru elementu no masīva (vektora) pastāvīgā laikā, ja elementu kārta nav svarīga?
sobes.tech AI
Atbilde no AI
Ja jaudas elementu secība masīvā (vektorā) nav svarīga, varat brīvi dzēst jebkuru elementu ar nemainīgu laiku, aizstājot to ar pēdējo elementu masīvā un samazinot masīva izmēru par 1.
Tas novērš visu sekojošo elementu pārvietošanu, kas parasti aizņem lineāru laiku.
Piemērs C++:
#include <vector>
void removeAt(std::vector<int>& vec, size_t index) {
if (index >= vec.size()) return;
vec[index] = vec.back(); // aizvieto dzēšamo elementu ar pēdējo
vec.pop_back(); // izņem pēdējo elementu
}