728x90
반응형

programming language/c++ 4

[C++] set 삽입,삭제,순회하기

배열이나 input값에서 중복되는 요소를 제거하고 저장하고 싶을때 set 자료구조를 사용할수 있다. c++에서는 #include으로 헤더파일을 추가하면 이 자료구조를 사용할수 있다. set이 템플릿 클래스여서 원소의 형태(int,string 등)을 지정해주어야 한다. 삽입,삭제,순회는 다음과 같다. #include #include using namespace std; int main(){ sets; //삽입 s.insert(1); s.insert(2); //삭제 s.erase(1); //순회 for(set::iterator iter=s.begin();iter!=s.end();iter++){ cout

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

vectorv 가 있다고 할때 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:..

728x90
반응형