연결리스트(list)
연결리스트는 배열의 각 요소가 값만 갖고있는 것이 아니라 다음 요소를 가리키는 포인터를 함께 가지고 있다. 이는 배열에서 중간에 추가 혹은 삭제할 때 뒤의 원소를 쭉 밀거나 뒤의 원소를 쭉 당겨와야하는 단점을 보완한 것이다. 배열의 요소들을 직접 미는 것이 아닌 포인터값만 변경해주는 것으로 임의의 위치에 추가/삭제 연산을 할 수 있다. C++에서는 list라는 자료형으로 연결리스트가 구현되어 있다.
//리스트 선언 list<int> list;
//리스트 포인터 선언 list<int>::iterator iter = list.begin(); -->> c++11이상부터 auto iter = list.begin(); 가능
반복자
- begin() : beginning iterator 반환
- end() : end iterator 반환
삽입
- push_front(element) : 리스트 맨 앞에 원소 추가
- push_back(element) : 리스트 맨 뒤에 원소 추가
- insert(iterator, element) : iterator가 가리키는 부분의 앞에 원소 추가
삭제
- pop_front() : 리스트 맨 앞의 원소 삭제
- pop_back() : 리스트 맨 뒤의 원소 삭제
- erase(iterator) : iterator가 가리키는 부분의 원소 삭제
조회
- *iterator : iterator가 가리키는 원소에 접근
- front() : 첫번째 원소 반환
- back() : 마지막 원소 반환
기타
- empty() : 리스트가 비어있는지 여부
- size() : 리스트 사이즈 반환
- remove(k) : k 와 같은 원소를 모두 제거
- remove_if(Predicate) :단항 조건자 predicate에 해당하는 원소를 모두 제거
- reverse() : 원소들의 순차열을 뒤집기
- sort() : 모든 원소를 default(오름차순) 으로 정렬
: 소트의 파라미터로 이항조건자가 올수 있다. 그때는 그 기준으로 정렬 - list2.swap(list1) : list2와 list1을 swap
'Develop > Ps' 카테고리의 다른 글
[C++] STL fill() 함수 사용법 (0) | 2023.11.01 |
---|---|
[C++] STL find() 함수 사용법 (1) | 2023.10.28 |
[C++] STL vector 사용법 (0) | 2023.07.18 |
[C++] STL pair 사용법 (0) | 2023.07.18 |
[C++] STL sort함수 사용법 (0) | 2023.07.18 |
댓글