본문 바로가기
Programming/C C++

C++ STL List 컨테이너

by whitele 2021. 6. 1.
반응형

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

댓글