programming language/c++

[C++] vector에서 특정원소 지우기 vector.erase()

그린푸딩 2022. 9. 9. 00:26
728x90
반응형

vector<int>v 가 있다고 할때 i번째 원소를 지우는 방법은 v.erase(v.begin()+i); 이다. 

한가지 궁금한것은 이 함수가 호출되어서 벡터를 지우는 과정은 어떻게 되고 시간복잡도는 어떨까? 

삭제되면 뒤에 원소들을 앞으로 당겨야하는건 당연한데 코드상으로 보면 한번에 실행이 되니까 O(1)로 가능한건가! 했는데 당연하게도 그건 아닌가보다. 시간 복잡도는 결국 O(N)이 된다. 

 

 

https://cplusplus.com/reference/vector/vector/erase/ 

 

vector::erase - C++ Reference

123456789101112131415161718192021222324 // erasing from vector #include #include int main () { std::vector myvector; // set some values (from 1 to 10) for (int i=1; i<=10; i++) myvector.push_back(i); // erase the 6th element myvector.erase (myvector.begin(

cplusplus.com

 

728x90
반응형