Computer >> Máy Tính >  >> Lập trình >> C ++

đặt toán tử =trong C ++ STL

Toán tử hàm =được sử dụng trong các bộ để sao chép một bộ (hoặc di chuyển sang một bộ khác trong C ++ STL. Nó hoạt động như một hoạt động gán ‘=’ bình thường cho các bộ. Có những dạng quá tải của hàm này -

  • copy:- set &operator =(const set &s1) -

    Hàm này sao chép tất cả các phần tử trong tập s1 sang một tập hợp khác. Tham số được truyền vào có cùng kiểu.

  • Cách sử dụng - đặt s1 =s2;

  • move:- set &operator =(set &&s1) -

    Thao tác này sẽ di chuyển các phần tử của tập s1 vào tập gọi.

  • Danh sách trình khởi tạo:- set &operator =(initializer_list ilist) -

    Phiên bản này sao chép các giá trị của ilist danh sách trình khởi tạo vào bộ gọi.

    Cách sử dụng - set s1 ={1,2,3,4,5};

Lưu ý - Tất cả chúng đều trả về tham chiếu của con trỏ thuộc loại tập hợp .

Chương trình sau được sử dụng để chứng minh cách sử dụng hàm round trong chương trình C ++ -

Ví dụ

#include <iostream>
#include <set>
using namespace std;
// merge function
int main(){
   set<int> set1, set2;
   // List initialization
   set1 = { 1, 2, 3, 4, 5 };
   set2 = { 10,11,12,13 };
   // before copy
   cout<<"set1 :";
   for (auto s = set1.begin(); s != set1.end(); ++s) {
      cout << *s << " ";
   }
   cout << endl;
   cout<<"set2 :";
   for (auto s = set2.begin(); s != set2.end(); ++s) {
      cout << *s << " ";
   }
   //after copy set1 to set2
   cout<<endl<<"After Copy"<<endl;
   cout<<"set1 :";
   set1=set2;
   for (auto s = set1.begin(); s != set1.end(); ++s) {
      cout << *s << " ";
   }
   return 0;
}

Đầu ra

set1 :1 2 3 4 5
set2 :10 11 12 13
After Copy
set1 :10 11 12 13