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

دليل الأساسيات لـ C++

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

الوظائف المخصصة في C++

مفاهيم C++ الأنماط & الأحرف

مفاهيم C++ البيانية

مفاهيم C++ & الأشخاص

المراجع في C++

الوراثة في C++

دليل STL الخاص بـ C++

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

طريقة استخدام دالة find() في C++ map ومثال

map (المسار) في STL الخاص بـ C++

C ++ map find()يستخدم دالةالبحثالمحددمفتاح k العنصر. إذا تم العثور على العنصر، فإنها تعود بمؤشر إلى العنصر. وإلا، فإنها تعود بمؤشر إلى نهاية map، أي map :: end().

النحو

 iterator find(const key_type& k); // قبل C++ 11
const_iterator find(const key_type& k) const; // بدءًا من C++ 11

المتغير

k: مفتاح يحدد البحث في وعاء map.

القيمة المعدة

إذا تم العثور على العنصر، فإنها تعود بمؤشر إلى العنصر. وإلا، فإنها تعود بمؤشر إلى نهاية map، أي map :: end().

مثال 1

لنرى مثالاً بسيطاً، البحث عن عنصر يحتوي على مفتاح معين.

#include <iostream>
#include <map>
using namespace std;
int main(void) {
   map<char, int> m = {
            {'أ', 100},
            {'ب', 200},
            {'ج', 300},
            {'د', 400},
            {'إي', 500},
            };
   auto it = m.find('c');
   cout << "مؤشر الدالة يشير إلى " << it->first << 
      " << " << it->second << endl;
   return 0;
}

الإخراج:

مؤشر الدالة يشير إلى c = 300

في المثال السابق، يعود دالة find() بالقيمة المحددة بكلي 'c'.

مثال 2

دعونا نرى مثالاً بسيطاً للبحث عن العنصر.

#include <iostream>
#include <map>
using namespace std;
int main(void) {
   map<char, int> m = {
            {'أ', 100},
            {'ب', 200},
            {'ج', 300},
            {'د', 400},
            {'إي', 500},
            };
            
    auto هو = m.find('إي');
   
    إذا (هو == m.end()) {
      cout << "لم يتم العثور على العنصر";
    } 
    else {
        // وجد العنصر
        cout << "مؤشر يشير إلى " << it->first << " = " << it->second << endl;
    }
    
   return 0;
}

الإخراج:

مؤشر يشير إلى إي = 500

في المثال السابق، يتم استخدام دالة find() للبحث عن مفتاح e في حاوية map، إذا لم يتم العثور على مفتاح e في map، فإنه سيقوم بإرجاع رسالة لم يتم العثور عليها، وإلا سيقوم بعرض هذا المفتاح.

مثال 3

دعونا نرى مثالاً بسيطاً.

#include <iostream>
#include <map>
 using namespace std;
int main()
{
    int n;
    map<int, char> example = {{1,'أ'},{2,'ب'},{3,'ج'},{4,'د'},{5,'إي'} };
    
    cout << "أدخل العنصر الذي تريد البحث عنه: ";
    cin >> n;
 
    auto search = example.find(n);
    إذا (search != example.end()) {
        cout << n << "  وجد، القيمة هي " << search->first << " = " << search->second << '\n';
    } else {
        cout << n << "  لم يتم العثور عليه\n";
    }
}

الإخراج:

أدخل العنصر الذي تريد البحث عنه: 5
5  وجد، القيمة هي 5 = إي

في المثال السابق، يتم استخدم دالة find() للبحث عن عنصر بناءً على المفتاح المقدم من المستخدم.

مثال 4

دعونا نرى مثالاً بسيطاً.

#include <iostream>
#include <map>
using namespace std;
int main ()
{
  map<char, int> mymap;
  iterator <char, int> هو;
  mymap['أ'] = 50;
  mymap['ب'] = 100;
  mymap['ج'] = 150;
  mymap['د'] = 200;
  هو = mymap.find('ب');
  إذا (هو != mymap.end())
    mymap.erase (هو);
  cout << "عناصر mymap:" << '\n';
  cout << "a => " << mymap.find('a')->second << '\n';
  cout << "c => " << mymap.find('c')->second << '\n';
  cout << "d => " << mymap.find('d')->second << '\n';
  return 0;
}

الإخراج:

عناصر mymap:
a => 50
c => 150
d => 200

map (المسار) في STL الخاص بـ C++