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

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

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

الوظائف في C++

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

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

فئة C++ و object

المراجع (pointers) في C++

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

تعليمية STL C++

دليل مرجع C++

استخدام طريقة و مثال C++ set operator==

Set (الجمع) في STL C++

C++ وظيفة算术 operator==هي set في C++وظيفة تعديل غير عضوية. هذه الوظيفة تستخدم لتحقق من whether مجموعتين متساويتين.

ملاحظة: المقارنة بين مجموعات الهدف هي مقارنة عنصرية متباينة. إذا كانت مجموعتان لديهما عدد متساوي من العناصر، فإن العناصر المتبادلة لها نفس القيمة، فإن مجموعتان متساويتين. وإلا فإنهما غير متساويتين.

اللغة النصية

template <class T, class Compare, class Alloc>
  bool operator==(const set<T, Compare, Alloc>& lhs,
                    const set<T, Compare, Alloc>& rhs);

المواضيع

lhs: الهدف الأول.

rhs: الهدف الثاني.

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

إذا كان set object من اليسار يساوي set object من اليمين، فإن العودة هي true، وإلا هي false.

معقد

إذا كانت حجم lhs و rhs مختلفًا، فإن التعقيد سيبقى ثابتًا.

إلا أن أطول الأحجام هي lhs و rhs.

صلاحية المؤشرات

لا يوجد تغيير.

نزاع البيانات

يمكن الوصول إلى كلا lhs و rhs.

الوصول إلى عناصر مجموعة غير المعدلة دائمًا آمن، مما يعني أن عناصرها غير قابلة للتغيير.

أمان الاستثناء

هذه الوظيفة لن تسبب استثناء.

مثال 1

لننظر في مثال بسيط لتحقق من whether مجموعتين متساويتين:

#include <iostream>
#include <set>
using namespace std;
int main() {
   مجموعة <char> m1;
   مجموعة <char> m2;
   if (m1 == m2)
      cout << "المجموعتين متساويتين." << endl;
   m1.emplace('a');
   
   // بعد إضافة عنصر إلى المجموعة m1
   if (!(m1 == m2))
      cout << "المجموعتين غير متساويتين." << endl;
   return 0;
}

الناتج:

المجموعتين متساويتين.
المجموعتين غير متساويتين.

في المثال السابق، المجموعات m1 و m2 فارغة. لذلك، سيعود operator == إلى true، وبعد إضافة عنصر إلى m1، سيكون حجم m1 مختلفًا عن حجم m2. لذلك، سيكون العودة false.

مثال 2

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

#include <set>  
#include <iostream>  
  
int main ()  
{  
   using namespace std;  
   مجموعة <int> m1, m2, m3;  
   int i;  
     
   للفوريت(i = 0; i < 3; i++);  
   {  
      m1.إدراج(i);  
      m2.إدراج(i * i);  
      m3.insert (i);  
   }  
  
   if (m1 == m2)  
      cout << "مجموعات m1 و m2 متطابقة." << endl;  
   else  
      cout << "مجموعات m1 و m2 غير متطابقة." << endl;  
  
   if (m1 == m3)  
      cout << "مجموعات m1 و m3 متطابقة." << endl;  
   else  
      cout << "مجموعات m1 و m3 غير متطابقة." << endl;  
      return 0;
}

الناتج:

مجموعات m1 و m2 غير متطابقة.
مجموعات m1 و m3 متطابقة.

مثال 3

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

#include <iostream>
#include <set>
using namespace std;
int main () 
{ 
  set < int > s1 , s2 ; 
  
  s1 . insert ( 10 ); 
  s1 . insert ( 20 ); 
  s1 . insert ( 30 ); 
  s2 = s1 ;
  cout << (s1 == s2) << endl;
  s2 . insert ( 40 );
  cout << (s1 == s2) << endl; 
}

الناتج:

1
0

في المثال السابق، إذا كانت المجموعتين s1 و s2 متطابقتين، فإنها ستعود 1، وإلا ستعود 0.

مثال 4

#include <set>  
#include <iostream>  
using namespace std; 
  
int main ()  
{  
   set<string> m2;
   typedef set<string> login; 
   
  m2 = {"xyz@123"} ; //stored password
   
   string password;
   login m1;
   
       cout << "---------Login----------" << endl << endl;
       cout << "ادخل كلمة المرور:\n";
       cin >> password;    // Get value
       m1.insert(password);   // Put them in set
     cout << "كلمتك المرور:\n";
     for (auto it = m1.begin(); it != m1.end(); it++) {
        cout << (*it) << endl;
      }
      cout << "كلمات المرور المخزنة في النظام:\n";
     for (auto it = m2.begin(); it != m2.end(); it++) {
        cout << (*it) << endl;
     }
  
   if (m1 == m2)  
      cout << "\nمرحبًا بصفتك..." << endl;  
   else  
      cout << "\nكلمة المرور غير صحيحة..." << endl;  
      return 0;
}

الناتج:

1).
---------Login----------
ادخل كلمة المرور: 
xyz
كلمة المرور التي أدخلتها: 
xyz
كلمات المرور المخزنة في النظام:
xyz@123
كلمة المرور غير صحيحة...
2).
---------Login----------
ادخل كلمة المرور: 
xyz@123
كلمة المرور التي أدخلتها: 
xyz@123
كلمات المرور المخزنة في النظام:
xyz@123
مرحبًا بك في صفحتك...

في الأمثلة أعلاه، هناك مجموعتين m1 و m2. m1 تحتوي على كلمات المرور، المجموعة الثانية m2 تحتوي على كلمات المرور المدخلة من المستخدم. إنه يتحقق مما إذا كانت هاتين المجموعتين تحتويان على العناصر نفسها. إذا كانت الكلمة المرور متطابقة، فإن عملية الدخول ناجحة، وإلا فإن عملية الدخول فاشلة.

Set (الجمع) في STL C++