English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
map جزء من C++ STL (المكتبة القياسية للتمثيلات). map هي وعاء مرتب للقيم المفتاحية المرتبطة، حيث يكون كل مفتاح فريد، يمكن إدراجه أو حذفه، لكن لا يمكن تعديله. ومع ذلك، يمكن تعديل القيمة المرتبطة بالمفتاح.
مثال:مستودع موظفين مكتوب بلغة C++، حيث يكون معرف الموظف المفتاح، والاسم القيمة، يمكن تمثيله كالتالي:
المفتاح | القيمة |
---|---|
101 | Nikita |
102 | Robin |
103 | Deep |
104 | John |
template < class Key, //map::key_type class T, // map::mapped_type class Compare = less, // map::key_compare class Alloc = allocator<pair> // map::allocator_type > class map;
key:نوع البيانات للمفتاح الذي سيتم تخزينه في map.
نوعنوع البيانات لقيمة التي سيتم تخزينها في map.
compare:مقارن يأخذ إثنين من المعلمات من نوع bool ويعود قيمة. هذا المعامل هو اختياري، والقيمة الافتراضية هي less <“key”>.
alloc:نوع نوع الموزع المرتبط بالكائن. هذا المعامل هو اختياري، والقيمة الافتراضية هي الموزع
يمكنك إنشاء map بسهولة باستخدام الجملة التالية:
typedef pair<const Key, T> value_type;
الجملة التالية ستستخدم لإنشاء مفتاح نوعهنوع مفتاحوقيمة valueنوعلـ value_typeمن نوع map.نقطة هامة هي أن مفتاح map والقيمة المطلوبة دائمًا يتم إدراجهما معًا، لا يمكنك إدراج مفتاح فقط أو قيمة فقط في map.
#include <string.h> #include <iostream> #include <map> #include <utility> using namespace std; int main() { mapEmployees; // 1) استخدام رمز مؤشرات المصفوفة للتعيين Employees[101] = "Nikita"; Employees[105] = "John"; Employees[103] = "Dolly"; Employees[104] = "Deep"; Employees[102] = "Aman"; cout << "Employees[104]=" << Employees[104] << endl << endl; cout << "حجم Map: " << Employees.size() << endl; cout << endl << "ترتيب طبيعي:" << endl; لـ(مجري::ايتيراتور ii = Employees.begin(); ii != Employees.end(); ++ii) { cout << (*ii).first << " : " << (*ii).second << endl; } cout << endl << "ترتيب عكسي:" << endl; for( map::reverse_iterator ii=Employees.rbegin(); ii!=Employees.rend(); ++ii) { cout << (*ii).first << " : " << (*ii).second << endl; } }
الإخراج:
Employees[104]=Deep حجم الخريطة: 5 الترتيب الطبيعي: 101: Nikita 102: Aman 103: Dolly 104: Deep 105: John ترتيب عكسي: 105: John 104: Deep 103: Dolly 102: Aman 101: Nikita
هذه قائمة بجميع وظائف عضو خريطة:
الوظيفة | الوصف |
---|---|
constructors | بناء الخريطة |
destructors | مدمج الخريطة |
operator= | نسخ عناصر الخريطة إلى وعاء خريطة آخر |
الوظيفة | الوصف |
---|---|
begin | إرجاع ميتبر إعادة التدوير للبداية |
cbegin | إرجاع ميتبر إعادة التدوير المستقر للبداية |
end | إرجاع ميتبر إعادة التدوير للنهاية |
cend | إرجاع ميتبر إعادة التدوير المستقر للنهاية |
rbegin | إرجاع ميتبر إعادة التدوير للنهاية |
rend | إرجاع ميتبر إعادة التدوير للبداية |
crbegin | إرجاع ميتبر إعادة التدوير المستقر للنهاية |
crend | إرجاع ميتبر إعادة التدوير المستقر للبداية |
الوظيفة | الوصف |
---|---|
empty | إذا كانت الخريطة فارغة، فسيتم إرجاع true |
size | إرجاع عدد العناصر في الخريطة |
max_size | إرجاع الحجم الأقصى للخريطة |
الوظيفة | الوصف |
---|---|
operator[] | استرجاع العنصر باستخدام المفتاح المحدد |
at | استرجاع العنصر باستخدام المفتاح المحدد |
الوظيفة | الوصف |
---|---|
insert | إدراج العناصر في الخريطة |
erase | حذف العناصر من الخريطة |
swap | تبادل محتويات الخريطة |
clear | حذف جميع العناصر من الخريطة |
emplace | إنشاء عنصر جديد وإدراجه في الخريطة |
emplace_hint | إنشاء عنصر جديد وإدراجه في الخريطة باستخدام التلميح |
الوظيفة | الوصف |
---|---|
مقارنة المفتاح | إرجاع نسخة من مقارنة المفتاح |
مقارنة القيمة | إرجاع نسخة من مقارنة القيمة |
الوظيفة | الوصف |
---|---|
البحث | البحث عن العناصر التي تحتوي على المفتاح المحدد |
عدد | عدد العناصر التي تطابق المفتاح المحدد |
حد أدنى | مستوى أدنى ميتبر للاشارة |
حد اعلى | العودة إلى مؤشر إلى الحد الأعلى |
equal_range | العودة إلى نطاق العنصر الذي يتطابق مع المفتاح المحدد |
الوظيفة | الوصف |
---|---|
get_allocator | العودة إلى م分配ر المخصص لبناء map |
الوظيفة | الوصف |
---|---|
operator== | التحقق من whether map الأول يساوي map الآخر |
operator!= | التحقق من whether map الأول يساوي map الآخر |
operator< | التحقق من whether map الأول أصغر من map الآخر |
operator<= | التحقق من whether map الأول أصغر أو يساوي map الآخر |
operator> | التحقق من whether map الأول أكبر من map الآخر |
operator>= | التحقق من whether map الأول أكبر من map الآخر |
swap() | تبادل عناصر mapين |