본문 바로가기
c++

list, forward_list

by O_x 2022. 6. 3.
 

list (Double Linked List)

list  <list> 라는 헤더 파일을 가진다. 

list는 insertion/removal o(1)을 가진다

list는 Double Linked List 다  Double Linked List란 무엇일까?

위 코드를 바탕으로

list nums는 포인터 두개와 size를 가지고 있다 포인트중 하나는 first를 가르키고

하나는 last를 가르킨다 size는 원소의 개수이다.

원소의 두번째 포인터는 다음 원소의 첫번째 포인터를 가르키는 형식으로 연결 되어 있다 이걸 Double Linked List라 한다.

emplace_back() - O(1)

 

emplace_front() - O(1)

 

emplace() - O(1)

 

find() - O(n)

 

Merge, splice 

 

merge

 

 

Merges two sorted lists into one The lists should be sorted into ascending order.

두개의 정렬화리스트를 하나로 만든 다라고 적혀있다

merge 하는 리스트는 오름차순으로 정렬되어야만 한다

즉 오른차순 sort로 정렬된 list 두개를 하나로 합쳐준다.

 

 

 

 

splice

한 list 에서 다른list 으로 요소를 전송하는 작업을 수행한다

adanve(it,1) 은 it + 1칸 앞으로 해석할 수있다.

 

list1.splice(it, list2) it위치에 list2를 넣는 다는 의미다.

 

 

 

 

 

 

 

 

forward_list (singly Linked List )

list와 비슷 한 느낌을 풍기는 forward_list가 있다.

forward_list는  list 와 마찬가지로 insertion/removal o(1)을 가진다 

forward_list 는 Singly Linked List 단일 연결리스트 각각의 원소에서 한가지 방향만을 가진다 라는 뜻이다.

아까 위에서 list는 Double_Linked_List 라고 설명했던 것이 기억 날 것이다.

list( Double_Linked_List)는 포인터 두개와 size를 가지고 있었다 forward_list는 *포인터 하나만을 가진다 

List와  다르게 _back 키워드는 제공되지 않는 것을 확인 할 수 있다.

 

 

 

운영중인 카톡방입니다.

https://open.kakao.com/o/gsMhUFie

 

C/C++/C# 언리얼/유니티 /질문

#C++#C#언리얼#게임개발#질문#개발#자료구조#백준#프로그래머스#c#유니티#unity#enreal

open.kakao.com

 
 
 

'c++' 카테고리의 다른 글

stack queue 스택 큐  (0) 2022.06.09
list vs vector  (0) 2022.06.06
vector 와 array c++  (0) 2022.06.02
vector란 무엇 일까? c++  (0) 2022.06.01
Call by value Call by reference Call by address 정리c++  (0) 2022.05.22

댓글