STUDY/C++
C++ - list
뚱냐리
2022. 8. 6. 23:29
반응형
list 의 헤더는 #include <list>이다.
리스트는 아시다시피 양방향 연결구조를 가진 자료형이다.
벡터의 단점은 임의의 위치에 원소를 추가하려면 그 위치를 찾아가서 삽입/제거 해야하기때문에 시간 복잡도가 O(n)이지만,
리스트는 O(1)이다.
vector와 다른점은, 위치를 이동할때 (loop 쓸때) lst + 5 요런건 불가능하다는거다. (vec.begin() + 5 이런것.. )
함수는 vector와 동일한듯. push_back, pop_back...
#include <iostream>
#include <list>
using namespace std;
int main() {
list<int> lst;
//list pointer 선언..
list<int>::iterator iter = lst.begin();
for(int i = 0; i < 5; i++) {
lst.push_back(i);
}
lst.pop_back();
lst.pop_front();
iter = lst.begin();
int k = 2;
for(int i = 0; i < k; ++i) {
++iter;
}
lst.insert(iter, 8);// iter의 위치가 1번째니까, 그 다음인 2번째에 8을 삽
입.
for(iter = lst.begin(); iter != lst.end(); iter++) {
cout << *iter << " ";
}
return 0;
}
728x90
반응형