반응형
List 컨테이너
list 컨테이너는 노드 기반 컨테이너로 데이터가 노드 단위로 저장되고 이중 연결 리스트로 구현되어있다. Vector와는 노드단위로 저장되는 점에서 차이가 있다.
생성자
- list<T> list : 빈 list 생성
복사 생성자를 제공한다.
멤버 함수
- assign(n, x) : x값으로 n개의 원소를 할당
- front() : 첫 번째 원소 참조
- back() : 마지막 원소 참조
- begin() : 첫 원소를 가리키는 반복자 반환
- rbegin() : 첫 원소를 가리키는 연 순차 열의 반복자 반환
- end() : 마지막 원소를 가리키는 반복자 반환
- rend() : 마지막 원소를 가리키는 역순 차열의 반복자 반환
- clear() : 모든 원소 제거
- empty() : 비었는지 검사
- erase(x) : x가 가리키는 원소를 제거 후 다음 원소를 가리키는 반복자 반환
- insert(a, x) : a가 가리키는 위치에 x삽입 후, 삽입한 노드를 가리키는 반복자 반환
- insert(a, n, x) : a가 가리키는 위치에 n개의 x값 삽입 후, 삽입한 노드를 가리키는 반복자 반환
- max_size() : 해당 컨테이너가 담을 수 있는 최대 노드의 개수(메모리 크기)
- merge(list) : list와 병합 정렬
- pop_front() : 첫 원소 제거
- pop_back() : 마지막 원소 제거
- push_front(x) : x를 앞에 추가
- push_back(x) : x를 마지막에 추가
- remove(x) : 원소 x를 모두 제거
- remove_if(a) : a가 참인 원소를 모두 제거
- resize(n) : 크기를 n으로 변경
- resize(n,x) : 크기를 n으로 변경 후 빈 공간은 x로 초기화
- revese() : 배열을 역순으로
- sort() : 정렬
- unique() : 인접한 원소와 값이 같으면 하나의 원소로 결합
- swap(list) : list와 스왑
- splice(p, list) : p가 가리키는 곳에 list 삽입
- splice(p, list, p2) : p가 가리키는 위치에 list의 p2가 가리키는 원소를 넣는다.
사용 예제
#include <iostream>
#include <list>
using namespace std;
int main(){
list<int> list;
for(int i=0;i<10;i++){
list.push_back(i);
}
list<int>::iterator iter;
list.push_back(100);
for(iter=list.begin();iter!=list.end();iter++){
cout<<*iter<<endl;
}
return 0;
}
리스트 컨테이너 정리
list는 노드 기반 컨테이너이다. 중간에 삽입 삭제가 가능하며 삽입 삭제가 빈번할 때 list 컨테이너를 사용하면 유리하다. 이중 연결 리스트로 구현되어있어 원소 앞뒤에 상관없이 자유롭다. 덕분에 반복자는 양방향으로 이동이 가능하다. list와 다른 list를 삽입, 정렬하는 것도 구현되어 있어 다루기 용이하다.
728x90
반응형
'Programming > C C++' 카테고리의 다른 글
C++ STL map 컨테이너 (2) | 2021.06.09 |
---|---|
C++ STL Set 컨테이너,멤버 함수 사용 (2) | 2021.06.05 |
C++ STL Deque 컨테이너 (0) | 2021.05.27 |
C++ STL Vector 컨테이너 (0) | 2021.05.24 |
[c/c++] 구조체, 공용체 struct, union (0) | 2021.05.02 |
댓글