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

C++ STL의 assign() 함수 나열

<시간/>

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

list::assign() 함수는 C++ 표준 템플릿 라이브러리의 일부입니다. 값을 목록에 할당하고 한 목록에서 다른 목록으로 값을 복사하는 데 사용됩니다.

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

구문

새 값을 할당하는 구문은 다음과 같습니다 -

List_Name.assign(size,value)

구문

한 목록에서 다른 목록으로 값을 복사하는 구문은 다음과 같습니다. -

First_List.assign(Second_List.begin(),Second_list.end())

매개변수

함수는 두 개의 매개변수를 취합니다 -

첫 번째는 목록의 크기를 나타내는 크기이고 두 번째는 목록 내부에 저장할 데이터 값을 나타내는 값입니다.

반환 값

함수에 반환 값이 없습니다.

예시

Input: Lt.assign(3,10)
Output: The size of list Lt is 3.
The elements of the list Lt are 10 10 10.

설명 -

다음 예제는 assign() 함수를 사용하여 목록의 크기와 값을 할당하는 방법을 보여줍니다. 목록 함수 내에서 전달할 첫 번째 값은 목록의 크기가 됩니다. 이 경우에는 3이고 두 번째 요소는 목록의 각 위치에 할당된 값이며 여기서는 10입니다.

예시

Input: int array[5] = { 1, 2, 3, 4 }
Lt.assign(array,array+3)
Output: The size of list Lt is 3.
The elements of the list Lt are 1 2 3.

설명 -

다음 예는 배열을 사용하여 목록에 값을 할당하는 방법을 보여줍니다. 목록에 할당할 총 요소 수는 목록의 크기가 됩니다.

사용자는 assign() 함수 내부의 첫 번째 인수로 배열의 이름을 전달하기만 하면 되며 두 번째 인수는 배열의 이름이어야 하며 그 다음에 "+" 기호와 사용자가 원하는 요소의 수가 와야 합니다. 목록에 할당하십시오.

위의 경우 3을 작성했으므로 배열의 처음 세 요소가 목록에 할당됩니다.

배열에 있는 요소의 수보다 큰 숫자를 쓰면 6이라고 가정해 보겠습니다. 그러면 프로그램은 오류를 표시하지 않고 대신 목록의 크기가 6이 되고 목록의 추가 위치가 할당됩니다. 값이 0입니다.

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

  • 먼저 목록의 요소를 표시할 ShowList(list L) 함수를 만듭니다.
  • 반복자를 생성합니다. 표시할 목록의 초기 요소를 포함할 itr이라고 가정하겠습니다.
  • 목록의 마지막 요소에 도달할 때까지 루프를 실행합니다.
  • 그런 다음 main() 함수 내에서 list를 사용하여 세 개의 목록을 생성합니다. L1, L2 및 L3이 int 유형의 값을 수락하도록 한 다음 int 유형의 배열을 생성하고 arr[]를 할당하고 할당합니다. 일부 가치.
  • 그런 다음 assign() 함수를 사용하여 목록 L1에 크기와 일부 값을 할당한 다음 목록 L1을 ShowDisplay() 함수에 전달합니다.
  • 그런 다음 assign() 함수를 사용하여 목록 L1의 요소를 L2에 복사하고 목록 L2도 ShowList() 함수에 전달합니다.
  • 그런 다음 assign() 함수를 사용하여 배열 arr[]의 요소를 목록 L3에 복사하고 목록 L3을 DisplayList() 함수에 전달합니다.

알고리즘

Start
Step 1-> Declare function DisplayList(list<int> L) for showing list elements
   Declare iterator itr
   Loop For itr=L.begin() and itr!=L.end() and itr++
   Print *itr
   End
Step 2-> In function main()
   Declare lists L1,L2,L3
   Initialize array arr[]
   Call L1.assign(size,value)
   Print L1.size();
   Call function DisplayList(L1) to display L1
   Call L2.assign(L1.begin(),L1.end())
   Print L2.size();
   Call function DisplayList(L2) to display L2
   Call L3.assign(arr,arr+4)
   Print L3.size();
   Call function DisplayList(L3) to display L3
Stop

예시

#include<iostream>
#include<list>
using namespace std;
int ShowList(list<int> L) {
   cout<<"The elements of the list are ";
   list<int>::iterator itr;
   for(itr=L.begin(); itr!=L.end(); itr++) {
      cout<<*itr<<" ";
   }
   cout<<"\n";
}
int main() {
   list<int> L1;
   list<int> L2;
   list<int> L3;
   int arr[10] = { 6, 7, 2, 4 };
   //assigning size and values to list L1
   L1.assign(3,20);
   cout<<"The size of list L1 is "<<L1.size()<<"\n";
   ShowList(L1);
   //copying the elements of L1 into L3
   L2.assign(L1.begin(),L1.end());
   cout<<"The size of list is L2 "<<L2.size()<<"\n";
   ShowList(L2);
   //copying the elements of arr[] into list L3
   L3.assign(arr,arr+4);
   cout<<"The size of list is L3 "<<L3.size()<<"\n";
   ShowList(L3);
   return 0;
}

출력

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

The size of list L1 is 3
The elements of the list are 20 20 20
The size of list L2 is 3
The elements of the list are 20 20 20
The size of list L3 is 4
The elements of the list are 6 7 2 4

설명

목록 L1의 경우 위의 출력을 생성한 assign() 함수에서 크기를 3으로, 값을 20으로 지정했습니다.

그런 다음 목록 L1의 요소를 L2에 복사하여 출력에서 ​​볼 수 있듯이 L2에 L1과 동일한 크기와 값을 제공합니다.

그런 다음 할당 기능을 사용하여 배열 arr[]의 모든 요소를 ​​복사하여 L3의 크기를 4로 만들고 그 요소를 출력에서와 같이 배열의 요소와 동일하게 만들었습니다.