이 글에서는 C++에서 forward_list::cbegin() 함수가 어떻게 동작하는지 자세히 알아보겠습니다.
forward_list란?
forward_list는 일반적인 list와 달리 다음 요소와의 연결(linkage)만 유지합니다. 일반 리스트는 앞뒤 요소 모두와 연결되어 있어 양방향 순회가 가능하지만, forward_list는 오직 앞쪽(forward) 방향으로만 순회할 수 있습니다.
forward_list::cbegin() 함수는 C++ 표준 템플릿 라이브러리(STL)의 일부로, 리스트의 첫 번째 요소를 가리키는 상수 반복자(constant iterator)를 반환하는 데 사용됩니다.
이 함수를 호출하려면 <forward_list> 헤더 파일을 포함해야 합니다.
문법(Syntax)
Forward_List_Name.cbegin();
매개변수(Parameters)
이 함수는 어떠한 매개변수도 받지 않습니다.
반환 값(Return Value)
이 함수는 forward_list의 첫 번째 요소를 가리키는 상수 반복자(constant iterator)를 반환합니다. 상수 반복자이므로 해당 요소의 값을 수정할 수 없다는 점에 유의하세요.
예제
입력: 11, 4, 99 출력: 11
설명 −
여기서는 요소 11, 4, 99를 가진 forward list를 생성했습니다. 그다음 cbegin() 함수를 호출하여 리스트의 첫 번째 요소를 가리키게 했습니다.
따라서 이 값을 출력하면 리스트의 첫 번째 요소인 11이 출력됩니다.
프로그램의 접근 방식
- 먼저 int 타입의 forward_list(예: "Lt")를 생성하고 값을 할당합니다.
- 리스트를 출력하기 위해 for 루프를 시작합니다.
- for 루프 내부에
cbegin()과cend()함수의 반환 값을 받을 auto 타입의 객체 "itr"를 생성하고,cbegin()함수를 사용하여 리스트의 첫 번째 요소로 "itr"를 초기화합니다. cend()함수를 사용하여 "itr"가 리스트의 마지막 요소와 같지 않은 조건을 for 루프의 종료 조건으로 지정합니다.- *itr을 출력합니다.
알고리즘
시작
Step 1-> main() 함수에서
forward_list<int> Lt={} 초기화
auto itr = Lt.cbegin(), itr != Lt.cend(), itr++ 조건으로 루프 실행
*itr 출력
종료
정지전체 코드 예제
#include<iostream>
#include<list>
using namespace std;
int main() {
forward_list<int> Lt = { 67,88,99,10 };
// 리스트의 요소 출력
cout <<"The elements of the list are : " << "\n";
for (auto itr = Lt.cbegin(); itr != Lt.cend(); itr++)
cout << *itr << " ";
return 0;
}출력 결과
위 코드를 실행하면 다음과 같은 출력이 생성됩니다 −
67 88 99 10
마무리
cbegin() 함수는 리스트의 데이터를 읽기만 하고 수정하지 않아야 하는 경우에 유용합니다. 상수 반복자를 반환하기 때문에 실수로 컨테이너의 요소를 변경하는 것을 컴파일 단계에서 방지할 수 있어, 코드의 안전성을 높이는 데 도움이 됩니다.