English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
STL map (المعرفات) الخاصة بـ C++
يستخدم map operator =() في ثلاثة حالات:
Operator =()لإعداد المحتوى القديم (أونسخ المحتوى): تخصيص محتوى خزان map وتغيير حجمه عند الحاجة.
Operator =()العملياتللإعدادخزان map oneالمحتوىإلى آخر، وتغيير حجمه عند الحاجة.
العملياتلنسخ العناصر منقائمة الأعمدةنسخ إلى خزان 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:إعداد قائمة الأعمدة.
هذا المسار.
دعونا نرى مثال بسيط، نسخ محتوى 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.
دعونا نرى مثال بسيط، نقل عناصر 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。
让我们看一个简单的示例,将初始化列表中的内容复制到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。
让我们看一个简单的实例。
#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 الثاني.