English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

تعليميات C++ الأساسية

تحكم في العملية C++

الوظائف الخاصة بـ C++

مجموعات C++ وStrings

هياكل بيانات C++

مفاهيم C++ وObjects

المؤشرات الخاصة بـ C++

الوراثة الخاصة بـ C++

تعليميات STL الخاصة بـ C++

دليل مرجعي C++

استخدام دالة C++ map operator=() مع أمثلة

STL map (المعرفات) الخاصة بـ C++

يستخدم map operator =() في ثلاثة حالات:

  1. Operator =()لإعداد المحتوى القديم (أونسخ المحتوى): تخصيص محتوى خزان map وتغيير حجمه عند الحاجة.

  2. Operator =()العملياتللإعدادخزان map oneالمحتوىإلى آخر، وتغيير حجمه عند الحاجة.

  3. العملياتلنسخ العناصر منقائمة الأعمدةنسخ إلى خزان map.

النحو

copy(1) map& operator=(const map& x); // قبل C++ 11
copy (1) map& operator=(const map& x); // من C++ 11
move (2) map& operator=(map&& x); // من C++ 11
initializer list (3) map& operator=(initializer_list<value_type> il); // من C++ 11

copy(1):- نسخ جميع العناصر من x إلى خزان map.

move(2):- نقل محتوى x إلى خزان map.

initializer_list(3):- نسخ عناصر il إلى محتوى خزان map.

المتغير

x: map object من نفس النوع.

il:إعداد قائمة الأعمدة.

القيمة الراجعة

هذا المسار.

مثال 1

دعونا نرى مثال بسيط، نسخ محتوى map من one إلى آخر.

#include <iostream>
#include <map>
using namespace std;
int main(void) {
   map<char, int> m1 = {
            {'a', 10},
            {'b', 20},
            {'c', 30} };
   cout << "Map m1包含以下元素" << endl;
    for (auto it = m1.begin(); it != m1.end(); ++it)
      cout << it->first << " = " << it->second << endl;
      
    map<char, int> m2 = m1;  
    cout << "\nبعد نسخ العناصر من m1 إلى m2... \n";  
    
    cout << "\nMap m2包含以下元素" << endl;
    for (auto it = m2.begin(); it != m2.end(); ++it)
      cout << it->first << " = " << it->second << endl;
   return 0;
}

الإخراج:

Map m1包含以下元素
a = 10
b = 20
c = 30
بعد نسخ العناصر من m1 إلى m2...
Map m2包含以下元素
a = 10
b = 20
c = 30

في المثال السابق، باستخدام دالة operator =() لنسخ محتوى Map m1 إلى Map m2.

مثال 2

دعونا نرى مثال بسيط، نقل عناصر map من one إلى آخر.

#include <iostream>
#include <map>
using namespace std;
int main(void) {
   
   map<char, int> m1 = {
            {'a', 1},
            {'b', 2},
            {'c', 3} };
      cout << "Map m1包含以下元素" << endl;
    for (auto it = m1.begin(); it != m1.end(); ++it)
      cout << it->first << " = " << it->second << endl;
      
    map<char, int> m2 = move(m1); 
    cout<<"\n将元素从m1移到m2后... \n";  
    
    cout << "\nMap m2包含以下元素" << endl;
    for (auto it = m2.begin(); it != m2.end(); ++it)
      cout << it->first << " = " << it->second << endl;
   return 0;
}

الإخراج:

Map m1包含以下元素
a = 1
b = 2
c = 3
将元素从m1移到m2后...
Map m2包含以下元素
a = 1
b = 2
c = 3

在上面的示例中,使用operator =()函数将一个map m1的内容移动到另一map m2。

实例3

让我们看一个简单的示例,将初始化列表中的内容复制到map。

#include <iostream>
#include <map>
using namespace std;
int main(void) {
   map<char, int> m;
   m =  {
      {'a', 100},
      {'b', 200},
      {'c', 300},
      {'d', 400}  };
   cout << "Map包含以下元素" << endl;
   for (auto it = m.begin(); it != m.end(); ++it)
      cout << it->first << " = " << it->second << endl;
   return 0;
}

الإخراج:

Map包含以下元素
a = 100
b = 200
c = 300
d = 400

在上面的示例中,operator =()用于将内容从初始化列表复制到Map m。

实例4

让我们看一个简单的实例。

#include <iostream>
#include <map>
using namespace std;
int main ()
{
  map<char,int> first;
  map<char,int> second;
  first['x']=8;
  first['y']=16;
  first['z']=32;
 
  second=first;                // second 现在包含整数
  first=map<char,int>();       // first现在是空的
  cout << "حجم الأولى: " << first.size() << '\n';
  cout << "حجم الثانية: " << second.size() << '\n';
  return 0;
}

الإخراج:

حجم الأولى: 0
حجم الثانية: 3

في الأمثلة أعلاه، أولاً سيقوم بحساب حجم Map الفارغة fisrt، ثم سيضيف بعض العناصر إلى Map الأول وسينسخها إلى Map الثاني.

STL map (المعرفات) الخاصة بـ C++