Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++ STL의 forward_list emplace_after() 및 emplace_front()

<시간/>

C++에서 forward_list::emplace_after() 및 forward_list::emplace_front() 함수의 작동을 보여주는 작업이 제공됩니다.

forward_list는 이전 요소뿐만 아니라 다음 요소와의 연결을 유지하는 일반 목록과 달리 다음 요소와의 연결만 유지하므로 양방향 반복에 도움이 됩니다. 그러나 forward_list는 순방향으로만 반복할 수 있습니다.

forward_list::emplace_after() 및 forward_list::emplace_front() 함수는 C++ 표준 라이브러리의 일부입니다.

forward_list::emplace_after() 함수는 인수 내부에 지정된 위치의 요소 뒤에 목록 내부에 새 요소를 삽입하는 데 사용됩니다.

forward_list::emplace_front() 함수는 목록의 시작 부분에 요소를 삽입하는 데 사용됩니다.

헤더 파일은 함수를 호출하기 위해 포함되어야 합니다.

forward_list::emplace_after()

구문

Forward_List_Name.emplace_after(iterator , element);

매개변수

이 함수는 두 개의 매개변수를 받아들입니다 -

반복자 , 반복자는 새 요소를 배치해야 하는 위치를 포함합니다.

요소 , 배치해야 하는 요소가 포함되어 있습니다.

반환 값

이 함수는 앞으로 목록 내부에 배치된 새 요소를 가리키는 반복자를 반환합니다.

forward_list::emplace_front()

구문

Forward_List_Name.emplace_front(element);

매개변수

이 함수는 하나의 매개변수를 허용합니다.

반환 값

함수는 아무 것도 반환하지 않습니다.

예시

Input: 11,34,56
Output: 41 11 34 56

설명 -

여기에서 요소가 11,34,56인 정방향 목록 Lt를 만들었습니다. 그런 다음 정방향 목록의 시작 부분에 새 요소를 삽입하는 데 사용되는 emplace_front() 함수를 호출했으며 여기에서 해당 요소는 41입니다.

따라서 정방향 목록을 인쇄할 때 생성된 출력은 41 11 34 56이며 첫 번째 요소는 41입니다.

아래 프로그램에서 사용하는 접근 방식은 다음과 같습니다. -

  • 먼저 목록을 만들고 int 유형의 "Lt"라고 말하고 값을 할당합니다.
  • 그런 다음 emplace_front() 함수를 호출하여 목록의 시작 부분에 새 요소를 배치합니다.
  • 그런 다음 auto 유형의 객체를 만들고 emplace_after() 위치에 전달할 위치를 저장하는 반복자로 작동하는 "itr"이라고 합시다. 그 옆에 새 요소가 배치됩니다. 목록의 끝이라고 가정해 보겠습니다.
  • 그런 다음 emplace_after() 함수를 호출하여 지정된 위치에 요소를 입력합니다. 첫 번째 인수는 목록의 위치를 ​​지정하는 반복자 "itr"이어야 하고 두 번째 인수는 해당 위치에 배치될 요소여야 합니다.

알고리즘

Start
Step 1->In function main()
   Initialize forward_list<int> Lt={}
   Call function Lt.emplace_front()
   Initialize auto itr=Lt.end();
   Call Lt.emplace_after(itr , element)
   End
Stop

예시

#include<iostream>
#include<list>
using namespace std;
int main() {
   forward_list<int> Lt = { 5,6,7,8 };
   //Using the emplace_front() function to place element at the beginning.
   Lt.emplace_front(3);
   auto itr = Lt.end();
   /*Using the emplace_after() function to place an element after the location specified*/
   Lt.emplace_after(itr , 10)
   //Displaying the list
   for(auto itr = Lt.begin() ; itr!=Lt.end ; itr++)
   cout<<” *itr ”<<” ”;
   return 0;
}

출력

위의 코드를 실행하면 다음 출력이 생성됩니다 -

3 5 6 7 8 10