STL:list - C++에서 연결 리스트 사용하기
1. list 관련 함수
list에 관련된 모든 함수는 이 링크에서 확인할 수 있다.
- list 초기화
1
list<int> l = { 1, 2 } // 1 2
begin()
: 리스트의 첫번째 원소의 iterator(주소값)를 반환한다.end()
: 리스트의 마지막의 iterator(주소값)를 반환한다. (리스트의 마지막 원소가 아닌 마지막 원소의 한 칸 뒤를 가리킨다)1 2
list<int>::iterator t = l.begin(); cout << *t << '\n'; // 1 출력
push_front(value)
: 리스트의 가장 앞에 원소를 삽입한다.push_back(value)
: 리스트의 가장 뒤에 원소를 삽입한다.insert(iterator, value)
: 해당 주소가 가리키는 곳 앞에 원소를 삽입한다.1 2 3
l.push_front(5); //5 1 2 l.push_back(10); // 5 1 2 10 l.insert(t, 6); // 5 6 1 2 10
pop_front()
: 리스트의 가장 앞의 원소를 삭제한다.pop_back()
: 리스트의 가장 뒤의 원소를 삭제한다.erase(iterator)
: 해당 주소가 가리키는 곳의 원소를 삭제하고, 그 다음 원소의 주소값을 반환한다.1 2 3
l.pop_front(); // 6 1 2 10 l.pop_back(); // 6 1 2 l.erase(t); // 6 2 - 1 삭제 후 다음 원소인 2의 위치의 iterator 반환
front()
: 리스트의 첫번째 원소를 반환한다.back()
: 리스트의 마지막 원소를 반환한다.1 2
l.front(); // 6 l.back(); // 2
empty()
: 리스트가 비어있는지 확인한다.1
cout << l.empty() << '\n'; // 비어 있지 않으니 0 출력
2. list 순회하기
- C++11 이상
1
for(auto i : l) cout << i << ' ';
- C++11 미만
1 2 3
for(list<int>::iterator it = l.begin(); it != l.end(); it++) { cout << *it << ' '; }
웬만하면 범위 기반 for문을 사용하자..
댓글남기기