더북(TheBook)

리스트 컨테이너에는 복제 생성자가 있으므로 이를 이용해 다른 리스트 컨테이너의 복제본을 생성할 수 있다.

std::list<double> save_values {values}; // values의 복제본

시작 반복자와 끝 반복자로 범위를 지정해서 다른 순차열의 원소들로 리스트를 초기화하는 것도 가능하다.

std::list<double> samples {++cbegin(values), --cend(values)};

values 리스트에서 첫 번째와 마지막 원소를 제외한 원소들로 리스트를 생성했다. list에서 begin()end()가 반환하는 반복자는 양방향이므로 정숫값을 더하거나 뺄 수 없다. 양방향 반복자를 수정할 수 있는 유일한 방법은 증가 연산자(++)나 감소 연산자(--)를 사용하는 것이다. 물론, 위 문장에서 초기화 리스트에 반복자를 사용해서 list가 아닌 다른 컨테이너의 범위를 지정할 수도 있다.

size()를 호출해서 리스트 컨테이너에 있는 원소 개수를 얻을 수 있다. resize()를 호출해서 원소 개수를 변경할 수도 있다. resize()의 인수가 원소 개수보다 작다면 끝에 있는 원소들부터 삭제된다. 인수가 원소 개수보다 크다면 원소 타입의 기본 생성자를 사용해서 원소들을 추가한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.