English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
وظيفة غير عضوية للوظيفة < في c++
template<class T, class Compare, class Alloc> bool operator< (const set<T, Compare, Alloc>& lhs, const set<T, Compare, Alloc>& rhs);
lhs: العنصر الأول من المجموعة.
rhs: العنصر الثاني.
إذا كان الجانب الأيسر من obj set أقل من الجانب الأيمن من obj set، فسيتم إرجاع true، وإلا سيتم إرجاع false.
إذا كانت lhs و rhs مختلفة في الحجم، فإن التعقيد سيظل ثابتًا.
إلا أن الطول الأكبر هو lhs و rhs.
لم يتم تغيير أي شيء.
يمكن الوصول إلى حاوية lhs و rhs.
الوصول إلى عناصر المجموعة غير المحوّرة دائمًا آمن.
هذه الوظيفة لن تسبب استثناءً.
لننظر في مثال بسيط، لتحقق ما إذا كانت المجموعة الأولى أقل:
#include <iostream> #include <set> using namespace std; int main() { set<char> m1; set<char> m2; m2.emplace('a'); if (m1 < m2) cout << "مجموعة m1 أقل من m2." << endl; m1 = m2; if (!(m1 < m2)) cout << "مجموعة m1 ليست أقل من m2." << endl; return 0; }
الإخراج:
مجموعة m1 أقل من m2. مجموعة m1 ليست أقل من m2.
في المثال السابق، هناك مجموعتين m1 و m2. يحتوي m2 على عنصر واحد، بينما m1 فارغة. عند مقارنة المجموعتين، سيظهر الرسالة "مجموعة m1 أقل من m2"، وبعد تخصيص m2 إلى m1، ستكون المجموعتين متساويتين في العناصر، ثم سيظهر الرسالة "مجموعة m1 ليست أقل من m2".
دعونا نرى مثالاً بسيطاً:
#include <set> #include <iostream> int main () { using namespace std; set<int> m1, m2, m3; int i; لـ(i = 1; i < 3; i++) { m1.insert(i); m2.insert(i * i); m3.insert(i - 1); } if (m1 < m2) cout << ": mجموعة m1 أقل من مجموعة m2." << endl; else cout << ": mجموعة m1 ليست أقل أو تساوي مجموعة m2." << endl; if (m1 < m3) cout << ": mجموعة m1 أقل من مجموعة m3." << endl; else cout << ": mجموعة m1 ليست أقل أو تساوي مجموعة m3." << endl; }
الإخراج:
مجموعة 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; }
الإخراج:
0 1
في هذا المثال، إذا كانت مجموعة s1 أقل من مجموعة s2، فإنها ستعود 1، وإلا ستعود 0。
#include <set> #include <iostream> using namespace std; int main () { set<string> m2; typedef set<string> login; m2.insert("xyz@123"); //stored password string password; login m1; cout << "---------Login----------" << endl << endl; cout << ": ادخل كلمة المرور: "; cin >> password; // Get value m1.insert(password); // Put them in set cout << ": كلمة المرور التي أدخلتها: "; for (auto it = m1.begin(); it != m1.end(); it++) { cout << (*it) << endl; } cout << ": كلمة المرور المخزنة في النظام: "; for (auto it = m2.begin(); it != m2.end(); it++) { cout << (*it) << endl; } if (m1 < m2) cout << ": كلمة المرور غير صحيحة..." << endl; else cout << "\nمرحبًا بك في صفحتك..." << endl; return 0; }
الإخراج:
1). ---------Login---------- ادخل كلمة المرور: xyz@123 كلمة المرور التي أدخلتها: xyz@123 كلمة المرور المخزنة في النظام : xyz@123 مرحبًا بك في صفحتك... 2). ---------Login---------- ادخل كلمة المرور: abc@123 كلمة المرور التي أدخلتها: abc@123 كلمة المرور المخزنة في النظام: xyz@123 كلمة المرور خاطئة...
في الأمثلة أعلاه، هناك مجموعتان m1 و m2. m1 تحتوي على كلمة المرور، المجموعة الثانية m2 تحتوي على كلمة المرور المدخلة من المستخدم. يتم التحقق من whether m1 أقل من m2. إذا كانت كلمة المرور m1 ليست أقل من m2، فإن عملية الدخول ناجحة، وإلا فإن عملية الدخول فاشلة.