C++ - list

2022. 8. 6. 23:29STUDY/C++

반응형

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
반응형

'STUDY > C++' 카테고리의 다른 글

C++ - deque  (0) 2022.08.07
c++ - stack/queue  (0) 2022.08.07
C++ - vector  (0) 2022.08.06
vector & array  (2) 2022.08.04
C++ 입출력 속도 줄이기 !  (2) 2022.08.03