본문 바로가기
[C++] Data Structure & Algorithm/STL

[STL] list #1

by song.ift 2023. 5. 15.

list (연결 리스트)

  • list의 동작 원리
  • 중간 삽입/삭제
  • 처음/끝, 삽입/삭제
  • 임의 접근 (Random Access)

 

list<int> li;

for (int i = 0; i < 100; ++i)
	li.push_back(i);

li.push_front(0);     // vector는 처음 삽입이 비효율적이라 없음

int size = li.size();
//li.capacity();  // 없음

int first = li.front();
int last = li.back();

// li[3] = 10    // 임의접근 허용안됨

list<int>::iterator itBegin = li.begin();
list<int>::iterator itEnd = li.end();

li.insert(itBegin, 100);

li.erase(li.begin());

li.pop_front();

li.remove(10);     // val와 같은 데이터인 원소는 모두 다 삭제. vector는 비효율적이라 없음.

 

단일 : [1] → [2] → [3] → [4] → [5]

이중 : [1] ←→ [2] ←→ [3] ←→ [4] ←→ [5]

원형 : [1] ←→ [2] ←→ [3] ←→ [4] ←→ [5] ←→

// Node [ data(4) next(4/8) ] -> Node [ data(4) next(4/8) ]
class Node
{
    public:
        Node* _next;
        int _data;
}

'[C++] Data Structure & Algorithm > STL' 카테고리의 다른 글

[STL] deque  (0) 2023.05.19
[STL] list #2  (0) 2023.05.19
[STL] vector #4  (0) 2023.05.15
[STL] vector #3  (0) 2023.05.15
[STL] vector #2  (0) 2023.05.15

댓글