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개의 원소를 할당한다.

  • lt.front()
    • 맨 앞의 원소를 반환(return), 참조 합니다.

  • lt.back()
    • 맨 뒤의 원소를 반환(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 를 삽입합니다.

  • lt.push_front(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 와 같은 원소를 모두 제거합니다 (편리)

  • lt.remove_if(Predicate)
    • 단항 조건자 predicate에 해당하는 원소를 모두 제거합니다 (더! 편리)

  • lt.reverse()
    • 원소들의 순차열을 뒤집습니다.

  • lt.sort()
    • 모든 원소를 default(오름차순) 으로 정렬합니다.
    • 소트의 파라미터로 이항조건자가 올수 있습니다. 그때는 그 기준으로 정렬합니다.

  • lt2.swap(lt1)
    • 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

+ Recent posts