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

C++ STL의 순방향 목록 assign() 함수

<시간/>

주어진 것은 C++에서 forward_list assign() 함수의 작동을 보여주는 작업입니다.

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

forward_list::assign() 함수는 C++ 표준 템플릿 라이브러리의 일부입니다. 순방향 목록 내부에 요소를 삽입하는 데 사용되며 목록에 이미 일부 요소가 포함되어 있으면 사용자가 추가한 새 요소로 대체됩니다.

이 함수를 호출하려면 헤더 파일이 포함되어야 합니다.

구문

이 함수에는 3가지 유형의 구문이 있습니다. 각각 다른 방법에 대해 -

  • Forward_list_name.assign(initializer_list);
  • Forward_list_name.assign(반복자 itr1, 반복자 itr2);
  • Forward_list_name.assign(카운트, 값);

매개변수

Initializer_list − 첫 번째 경우 정방향 목록은 동일한 순서로 초기화 목록으로 전달된 값을 가져옵니다.

반복자 - 두 번째 경우 순방향 목록은 itr1 및 itr2 반복자가 가리키는 값 사이에 포함된 값을 가져옵니다. 여기에는 itr1이 가리키는 값도 포함되지만 itr2가 가리키는 값은 포함되지 않습니다.

수 및 가치 − 세 번째 경우 매개변수 "count"는 forward list 내부에 삽입할 요소의 수를 나타내고 "value"는 각 요소에 할당해야 하는 값을 나타냅니다.

position은 새 요소가 배치되어야 하는 위치를 나타내고 value는 목록 내부에 삽입되어야 하는 요소를 나타냅니다.

반환 값

함수는 값을 반환하지 않습니다.

예시

Input: assign(5,1)
Output: 1 1 1 1 1

설명 -

여기서 우리는 int 유형의 정방향 목록 "Lt"를 만들었습니다. 그런 다음 count 매개변수를 사용하여 목록에 값을 할당하기 위해 assign 함수를 사용했습니다. 및 가치 .

목록 "Lt"에 각각 값이 1인 5개의 요소를 할당하여 출력 1 1 1 1 1을 생성했습니다.

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

  • 먼저 "Lt1", "Lt2" 및 "Lt3"이라고 합시다. int 유형의 전방 목록 3개를 만듭니다.
  • 그런 다음 assign() 함수를 사용하여 이니셜라이저 목록을 매개변수로 전달하는 Lt1에 요소를 할당합니다.
  • 그런 다음 할당 기능을 사용하여 개수와 값을 매개변수로 전달하는 Lt2에 요소를 할당합니다.
  • 그런 다음 assign 함수를 사용하여 두 개의 반복자를 매개변수로 전달하는 Lt3에 요소를 할당합니다. Lt1 목록의 초기 위치와 마지막 위치를 각각 가리키는 것으로 가정하겠습니다.

알고리즘

Start
Step 1->In function main()
   Declare forward_lists<int> Lt1,Lt2,Lt3
   Call Lt1.assign(initialize list)
   Call Lt2.assign(count,value)
   Call Lt3.assign(L1.begin(),Lt2.end())
Stop

예시

#include <forward_list>
#include <iostream>
using namespace std;
int main() {
   forward_list<int> Lt1;
   forward_list<int> Lt2;
   forward_list<int> Lt3;
   //assigning elements to Lt1
   Lt1.assign({4,9,7,8});
   //assigning elements to Lt2
   Lt2.assign(3,6);
   //assigning elements to Lt2
   Lt3.assign(Lt1.begin(),Lt1.end());
   // Display the lists
   cout << "Lt1: ";
   for (int& D : Lt1)
      cout << D << " ";
      cout << endl;
   // Display Lt2
      cout << "Lt2: ";
      for (int& D : Lt2)
         cout << D << " ";
   // Display Lt3
      cout << "Lt3: ";
      for (int& D : Lt3)
         cout << D << " ";
   return 0;
}

출력

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

Lt1: 4 9 7 8
Lt2: 6 6 6
Lt3: 4 9 7 8