[C언어] C++ STL 리스트(list) 사용법 정리
업데이트:
C++ STL 리스트(list) 사용법 정리
1. 관련 함수 정리
반복자
- 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(): 리스트 사이즈 반환
2. 리스트 사용예
#include <iostream>
#include <list>
using namespace std;
int main()
{
// 리스트 생성
list<int> a;
// 원소 추가
a.push_back(22);
a.push_back(33);
a.push_front(11);
a.push_back(44);
a.push_back(55);
// 반복자 생성
list<int>::iterator iter = a.begin();
// 리스트 출력
for(iter=a.begin(); iter!=a.end(); iter++)
{
cout << *iter << endl; // 원본 리스트: 11 22 33 44 55
}
cout << "" << endl;
cout << "" << endl;
// 원소 삭제
a.pop_front();
a.pop_back();
for(iter=a.begin(); iter!=a.end(); iter++)
{
cout << *iter << endl; // 원소 삭제후 리스트: 22 33 44
}
cout << "" << endl;
// 리스트 사이즈 출력
cout << a.size() << endl; // 3 출력( 22, 33, 44 이므로)
// 리스트가 비어있는가
cout << a.empty() << endl; // 비어있지 않으므로 0 반환
// 리스트 첫번째 원소 출력
cout << a.front() << endl; // 22
// 리스트 마지막 원소 출력
cout << a.back() << endl; // 44
cout << "" << endl;
// 반복자 2번째 위치로 이동
iter++; // 반복자가 두번째 원소(33)를 가리킴
iter++; // 반복자가 세번째 원소(44)를 가리킴
a.insert(iter, 55555);
for(iter=a.begin(); iter!=a.end(); iter++)
{
cout << *iter << endl; //세번째 원소(44) 전에 추가하는 것(22,55555,33,44)
}
}