1. 들어가기 앞서..
컨테이너는 같은 타입을 관리할 목적으로 만들어진 클래스
2. list 컨테이너
표준 시퀀스 컨테이너 : 원소가 자신만의 insert 위치(순서)를 가지는 컨테이너 (선형) ( vector, deque, list )
노드 기반 컨테이너 : 각각의 데이터를 메모리 단위에 저장 ( list, set, multiset, map, multimap )
표준 연관 컨테이너 : 저장되는 원소가 삽입 순서와 달라도 특정 정렬 기준에 의해 자동 정렬(비선형) ( set, multiset, map, multimap )
배열 기반 컨테이너 : 데이터 여러 개가 하나의 메모리 단위에 저장 ( vector, deque )
![](https://3001ssw.com/wp-content/uploads/2023/07/img-min-15.png)
3. 대표 함수
- push_front(element) : 리스트 맨 앞에 추가
- push_back(element) : 리스트 맨 뒤에 추가
- pop_front() : 리스트 맨 앞 원소 삭제
- pop_back() : 리스트 맨 뒤 원소 삭제
- insert( iterator, element ) : iterator가 가리키는 부분 앞에 추가
- erase( iterator ) : iterator가 가리키는 원소 삭제
- front() : 첫 번째 원소 반환
- back() : 마지막 원소 반환
- empty() : 비어 있으면 true 아니면 false 반환
- size() : 원소 수 반환
- clear() : 모든 원소 삭제
4. list 기본 사용 예시 전체 코드
#include <iostream>
#include <list>
using namespace std;
void main ( )
{
list<int> intList;
intList.push_front( 1 ); // 앞에서 삽입
intList.push_front( 2 );
for ( int iLoop : intList )
cout << "int List : " << iLoop << endl;
cout << endl;
intList.push_back( 3 ); // 뒤에서 삽입
intList.push_back( 4 );
for ( int iLoop : intList )
cout << "int List : " << iLoop << endl;
cout << endl;
intList.pop_front(); // 앞에서 pop
intList.pop_back(); // 뒤에서 pop
for ( int iLoop : intList )
cout << "int List : " << iLoop << endl;
cout << endl;
list<int>::iterator itr = intList.begin(); // 리스트 시작 가리킴
itr++; // 두번째 원소;
intList.insert( itr, 5 ); // 가리키는원소 앞에 삽입
for ( int iLoop : intList )
cout << "int List : " << iLoop << endl;
cout << endl;
itr = intList.begin(); // 리스트 시작 가리킴
itr++; // 두번째 원소;
intList.erase( itr ); // 가리키는 원소 삭제
for ( int iLoop : intList )
cout << "int List : " << iLoop << endl;
cout << endl;
cout << "empty : " << intList.empty() << " , size : " << intList.size() << endl << endl; // empty, size 출력
intList.clear(); // 모두 삭제
cout << "empty : " << intList.empty() << " , size : " << intList.size() << endl << endl; // empty, size 출력
system( "pause" );
}