반응형

Vector 3

[C++] iterator로 set, vector 원소 삭제하기 (cannot increment value-intialized map/set)

개요 iterator로 set, vector 원소 삭제(earse)하는 방법에 대해 서술한다. for (set::iterator iter = s.begin(); iter != s.end(); iter++) { if (*iter % 2 == 0) { s.erase(iter); iter--; } } 삭제가 잘 될줄 알았지만... 삭제가 잘 되지 않는다. 사유를 보니 erase(iter)를 하게 되면 iter가 무효화되기 때문에 연산이 먹지 않는다고 한다. vector의 iterator여서 iter++을 하면 다음 요소로 넘어가지 않을까? 굳이 무효화해야하나?라고 생각했지만 iterator는 vector 말고도 list 등에서도 작동하므로 iter를 무효화해준다고 한다. https://stackoverflow..

언어/C++ 2022.11.19

[C++ STL] vector 선언 및 초기화 (1차원, 2차원)

개요 C++의 STL 중 하나로, 한 번에 한 타입만 저장 가능합니다. 이번 게시글에서는 vector의 선언과 초기화에 대해 다뤄보겠습니다. 상세 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #include using namespace std; int n, m; // 기본적인 1차원 vector 선언 vector v; // 크기가 5인 1차원 vector 선언 vector v(5); // 크기가 5이고 초기값이 1인 1차원 vector 선언 vector v(5, 1); // 기본적인 2차원 vector 선언 vector v; // n x n 2차원 vector vector v(n, vector(n)); // 초기값이 1인 n x m 2차원 vector vector v(..

언어/C++ 2021.10.03
반응형