[C++] C++ STL list 기본 사용법과 예제
C++에서 list 사용법을 간단하게 알아보자
환경 및 선수조건
- C++
리스트 기본 함수
iterator(반복자)
begin()
: beginning iterator를 반환end()
: end iterator를 반환
추가 및 삭제
push_front(element)
: 리스트 제일 앞에 원소 추가pop_front()
: 리스트 제일 앞에 원소 삭제push_back(element)
: 리스트 제일 뒤에 원소 추가pop_back()
: 리스트 제일 뒤에 원소 삭제insert(iterator, element)
: iterator가 가리키는 부분 “앞”에 원소를 추가erase(iterator)
: iterator가 가리키는 부분에 원소를 삭제
조회
*iterator
: iterator가 가리키는 원소에 접근front()
: 첫번째 원소를 반환back()
: 마지막 원소를 반환
기타
empty()
: 리스트가 비어있으면 true 아니면 false를 반환size()
: 리스트 원소들의 수를 반환
구현 코드
#include <iostream>
#include <list>
using namespace std;
int main(){
list<int> l;
// push_back
l.push_back(5);
l.push_back(6);
l.push_back(7);
l.push_back(8);
l.push_back(9);
l.push_back(10);
// pop_back
l.pop_back();
// push_front
l.push_front(4);
l.push_front(3);
l.push_front(1);
l.push_front(0);
// pop_front
l.pop_front();
// back and front
cout << "list front value: " << l.front() << '\n';
cout << "list end value: " << l.back() << '\n';
// size
cout << "list size: " << l.size() << '\n';
// empty
cout << "Is it empty?: " << (l.empty() ? "Yes" : "No") << '\n';
// iterator
list<int>::iterator begin_iter = l.begin(); // auto begin_iter = l.begin()도 가능
list<int>::iterator end_iter = l.end(); // auto end_iter = l.end()도 가능
// insert
begin_iter++; // 2번째를 가리키는 iterator
l.insert(begin_iter, 2);
// erase
end_iter--; // 마지막 원소를 가리키는 iterator
l.erase(end_iter);
// *iterator: 원소 접근
cout << "list "<< distance(l.begin(), begin_iter)+ 1 << " element: " << *begin_iter << '\n';
return 0;
}