English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.
الوصول إلى عناصر مجموعة غير المعدلة دائمًا آمن، مما يعني أن عناصرها غير قابلة للتغيير.
هذه الوظيفة لن تسبب استثناء.
لننظر في مثال بسيط لتحقق من 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.
دعنا نرى مثالاً بسيطاً:
#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 متطابقة.
دعنا نرى مثالاً بسيطاً:
#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.
#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 تحتوي على كلمات المرور المدخلة من المستخدم. إنه يتحقق مما إذا كانت هاتين المجموعتين تحتويان على العناصر نفسها. إذا كانت الكلمة المرور متطابقة، فإن عملية الدخول ناجحة، وإلا فإن عملية الدخول فاشلة.