Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++ STL list의 cbegin()과 cend() 함수 완벽 가이드

이 글에서는 C++에서 list::cbegin() 함수와 list::cend() 함수가 어떻게 동작하는지 살펴보겠습니다.

이 두 함수는 C++ 표준 템플릿 라이브러리(STL)에 포함되어 있으며, 사용하려면 <list> 헤더 파일을 반드시 포함해야 합니다.

list::cbegin() 함수

cbegin()은 리스트의 첫 번째 요소를 가리키는 상수 반복자(constant iterator)를 반환합니다. 이 반복자를 사용하면 리스트를 순회할 수 있지만, 리스트의 값을 변경할 수는 없습니다. 즉, cbegin() 함수는 오직 읽기 전용 순회(iteration) 목적으로만 사용됩니다.

문법

List_Name.cbegin();

매개변수

이 함수는 어떠한 매개변수도 받지 않습니다.

반환값

리스트의 첫 번째 요소를 가리키는 상수 반복자를 반환합니다.

list::cend() 함수

cend()는 리스트의 마지막 요소 다음 위치(끝)를 가리키는 상수 반복자를 반환합니다. 리스트를 역방향으로 추적하거나 순회의 종료 조건을 지정하는 데 활용할 수 있으며, 역시 리스트의 값을 변경할 수 없으므로 읽기 전용 순회 목적으로만 사용됩니다.

문법

List_Name.cend();

매개변수

이 함수는 어떠한 매개변수도 받지 않습니다.

반환값

리스트의 마지막 부분을 가리키는 상수 반복자를 반환합니다.

예제

입력: list<int> Lt = {4, 8, 9}
출력: 4

설명: 위 예제에서는 4, 8, 9라는 요소를 가진 리스트를 생성했습니다. 그다음 cbegin() 함수를 호출했고, 이 함수는 리스트의 첫 번째 요소를 가리킵니다. 따라서 해당 값을 출력하면 리스트의 첫 번째 요소인 4가 출력됩니다.

프로그램 구현 접근 방식

  • 먼저 int 타입의 리스트(예: "Lt")를 생성하고 값을 할당합니다.
  • 리스트의 요소를 출력하기 위해 반복문을 시작합니다.
  • for 반복문 안에서 cbegin()과 cend() 함수의 반환값을 받을 auto 타입 객체 "itr"를 생성하고, cbegin() 함수로 리스트의 첫 번째 요소로 초기화합니다.
  • 반복문의 종료 조건으로, cend() 함수를 사용해 "itr"가 리스트의 끝과 같지 않은 동안 계속 반복하도록 지정합니다.
  • *itr의 값을 출력합니다.

알고리즘

Start
Step 1-> main() 함수에서
    list<int> Lt={} 초기화
    auto itr = Lt.cbegin(), itr != Lt.cend(), itr++ 조건으로 반복
    *itr 출력
    End
Stop

전체 코드 예제

#include<iostream>
#include<list>
using namespace std;
int main() {
    list<int> Lt = { 4,1,7,9,6 };
    // 리스트의 요소 출력
    cout << "The elements of the list are : " << "\n";
    for (auto itr = Lt.cbegin(); itr != Lt.cend(); itr++)
    cout << *itr << " ";
    return 0;
}

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

4 1 7 9 6

이처럼 cbegin()과 cend()를 함께 사용하면 리스트의 모든 요소를 안전하게 순회하면서 읽을 수 있습니다. 값의 수정이 필요 없는 경우 일반 begin()/end() 대신 이 함수들을 사용하는 것이 코드의 의도를 더 명확하게 표현하는 좋은 습관입니다.