C++에서 forward_list::cbefore_begin() 함수의 작동을 보여주는 작업이 주어진다.
forward_list는 이전 요소뿐만 아니라 다음 요소와의 연결을 유지하는 일반 목록과 달리 다음 요소와의 연결만 유지하므로 양방향 반복을 돕습니다. 하지만 forward_list는 순방향으로만 반복할 수 있습니다.
forward_list::cbefore_begin() 함수는 C++ 표준 템플릿 라이브러리의 일부입니다. 목록의 첫 번째 요소 앞의 위치를 얻는 데 사용됩니다.
이 함수를 호출하려면
구문
Forward_List_Name.cbefore_begin();
매개변수
함수는 매개변수를 허용하지 않습니다.
반환 값
함수는 forward_list의 첫 번째 요소 앞의 위치를 가리키는 상수 반복자를 반환합니다.
예
Input: 8, 9, 32, 21 Output: 56 8 9 32 21
설명 − 여기에서 요소 8,9,32,21로 순방향 목록을 만들었습니다. 그런 다음 목록의 첫 번째 요소 앞의 위치를 가리키고 해당 위치를 반복자 itr에 저장하는 cbefore_begin() 함수를 호출했습니다. 그런 다음 insert_after() 함수를 사용하여 요소 56을 첫 번째 요소 앞의 위치, 즉 8에 삽입합니다. 따라서 인쇄할 때 생성된 출력은 56 8 9 32 21이며, 이는 56이 시작 부분에 있음을 보여줍니다. 목록 및 따라서 cbefore_begin function()이 올바르게 작동했습니다.
아래 프로그램에서 사용하는 접근 방식은 다음과 같습니다. -
- 먼저 forward_list를 만들고 int 유형의 "Lt"라고 말하고 값을 할당하겠습니다.
- 그런 다음 auto 유형의 객체 "itr"을 만들고 cbefore_begin() 함수를 호출하여 반환된 반복자를 저장합니다.
- 그런 다음 insert_after() 함수를 사용하여 목록의 시작 부분에 새 요소를 삽입합니다. 반복자 "itr"을 첫 번째 인수로 전달하고 삽입할 숫자를 두 번째 인수로 전달합니다.
- 그런 다음 목록 인쇄를 위한 For 루프 시작
- 그런 다음 end() 및 begin() 함수의 반환 값을 수신하기 위해 for 루프 내부에 auto 유형의 객체 "itr"을 만듭니다. begin() 함수를 사용하여 목록의 첫 번째 요소를 지정하여 "itr"을 초기화합니다.
- 그런 다음 cend() 함수를 사용하여 목록의 마지막 요소와 같지 않은 "itr"을 작성하여 for 루프의 종료 조건을 지정합니다.
- *itr을 인쇄합니다.
알고리즘
Start Step 1->In function main() Initialize forward_list<int> Lt={} Initialize auto itr= Lt.cbefore_begin() Call insert_after(itr, new_element) Loop For auto itr = Ltcbegin() and itr != Lt.end() and itr++ Print *itr End Stop
예
#include<iostream> #include<forward_list> using namespace std; int main() { forward_list<int> Lt = { 40, 55, 67, 89 }; auto itr = Lt.cbefore_begin(); Lt.insert_after(itr, 77); for (auto itr = Lt.begin(); it != Lt.end(); ++itr) cout << *itr << " "; return 0; }
출력
위의 코드를 실행하면 다음과 같은 출력이 생성됩니다 -
77 40 55 67 89