list
사용법
1. #include <list> 헤더파일 사용
2. using namespace std; 선언하면 편리
3. 선언 : list <DataTyep> 변수이름; ex) list <int> int1; list <int> int2;
생성자와 연산자
- list int1;
- 비어있는 list 컨테이너 lt 를 생성
- list int1(10);
- default(0)값으로 초기화 된 원소 10개를 가진 list를 생성
- list int1(3, 2);
- 2값으로 초기화 된 원소 3개를 가진 list를 생성
- list int2(int1);
- list lt1을 lt2로 복사
연산자("==", "!=", "<", ">", "<=", ">=") 사용 가능합니다.
멤버함수
list 컨테이너에는 at, [] 가 없습니다. (반복자가 ++, -- 하는 방식으로만 원소 접근가능)
- lt.assign(3, 4);
- 4로 초기화된 3개의 원소를 할당한다.
- 4로 초기화된 3개의 원소를 할당한다.
- lt.front()
- 맨 앞의 원소를 반환(return), 참조 합니다.
- 맨 앞의 원소를 반환(return), 참조 합니다.
- lt.back()
- 맨 뒤의 원소를 반환(return), 참조 합니다.
- 맨 뒤의 원소를 반환(return), 참조 합니다.
- lt.begin()
- 맨 앞의 원소를 가리키는 iterator를 반환합니다.
- ex) list<int>::iterator iter;
- iter = lt.begin();
- lt.end()
- 맨 마지막의 다음 원소를 가리키는? (맨마지막 을 알 수 있는) iterator를 반환합니다.
- ex) list<int>::iterator iter;
- iter = lt.end();
- lt.rbegin()
- 뒤에서부터 원소를 순차적으로 접근할때 편리하게 쓰입니다.
- begin()과 동일하게 사용하면 됩니다.
- lt.rend()
- 뒤에서부터 원소를 순차적으로 접근할때 편리하게 쓰입니다.
- end()와 동일하게 사용하면 됩니다.
- lt.push_back(k)
- 뒤쪽으로 원소 k 를 삽입합니다.
- 뒤쪽으로 원소 k 를 삽입합니다.
- lt.push_front(k)
- 앞쪽으로 원소 k 를 삽입합니다.
- 앞쪽으로 원소 k 를 삽입합니다.
- lt.pop_back()
- 맨 마지막 원소를 제거합니다.
- 맨 마지막 원소를 제거합니다.
- lt.pop_front()
- 맨 첫번째 원소를 제거합니다.
- 맨 첫번째 원소를 제거합니다.
- lt.insert(iter, k)
- iter가 가리키는 위치에 원소 k를 삽입합니다.
- 삽입한 원소를 가리키는 iterator를 반환합니다.
- lt.erase(iter)
- iterator가 가리키는 원소를 삭제합니다.
- 반환값은 삭제한 원소의 다음 원소를 가리키는 iterator를 반환합니다.
- lt.size()
- 원소의 개수를 반환합니다.
- 원소의 개수를 반환합니다.
- lt.remove(k)
- k 와 같은 원소를 모두 제거합니다 (편리)
- k 와 같은 원소를 모두 제거합니다 (편리)
- lt.remove_if(Predicate)
- 단항 조건자 predicate에 해당하는 원소를 모두 제거합니다 (더! 편리)
- 단항 조건자 predicate에 해당하는 원소를 모두 제거합니다 (더! 편리)
- lt.reverse()
- 원소들의 순차열을 뒤집습니다.
- 원소들의 순차열을 뒤집습니다.
- lt.sort()
- 모든 원소를 default(오름차순) 으로 정렬합니다.
- 소트의 파라미터로 이항조건자가 올수 있습니다. 그때는 그 기준으로 정렬합니다.
- lt2.swap(lt1)
- lt2와 lt1을 swap(바꿉)니다.
- lt2와 lt1을 swap(바꿉)니다.
- lt2.splice(iter2, lt1)
- lt2에서 iter2이 가리키는 곳에 lt1의 모든 원소를 잘라 붙입니다.
- lt2.splice(iter2, lt1, iter1) : lt2의 iter2가 가리키는 곳에 lt1의 iter1이 가리키는 원소를 잘라 붙입니다.
- lt2.splice(iter2, lt1, iter1_1, iter1_2) : lt2의 iter2가 가리키는 곳에 lt1의 [iter1_1 , iter1_2) 까지의 원소를 잘라 붙입니다.
- **[ start, end ) 까지는 start보다는 크거나같고, end보다는 작은 원소를 뜻합니다.
- lt.unique()
- 인접한(양옆의) 원소가 같으면 유일하게 만듭니다.(하나만빼고 삭제)
- 인접한(양옆의) 원소가 같으면 유일하게 만듭니다.(하나만빼고 삭제)
- lt2.merge(lt1)
- lt1을 lt2내부로 합병 정렬합니다. 기준은 default 오름차순 입니다.
- 두번째 파라미터로 이항 조건자가 올 수 있습니다. 그때는 그 기준으로 정렬합니다.
'C++' 카테고리의 다른 글
STL 컨테이너(deque, list, set, map) 설명 (0) | 2023.06.20 |
---|---|
윈도우 프로시저 & 윈도우 메세지 (0) | 2023.04.20 |
this 포인터, 함수 포인 (0) | 2023.04.13 |
C++ 가상함수 테이블 (0) | 2023.04.12 |
C++ 복사 생성자 (0) | 2023.04.12 |