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

دليل الأساسيات لمكتبة C++

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

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

مجموعات C++ و 字وائم

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

مفاهيم C++ و كائنات

المؤشرات في C++

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

دليل STL لمكتبة C++

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

وظائف معاملات C++ std < 使用方法及示例

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

وظيفة غير عضوية للوظيفة < في c++

ملاحظة: يتم مقارنة عناصر set باستخدام عمودية، والتفحص سيوقف عند أول عدم تطابق.

النحو

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.

الوصول إلى عناصر المجموعة غير المحوّرة دائمًا آمن.

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

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

مثال 1

لننظر في مثال بسيط، لتحقق ما إذا كانت المجموعة الأولى أقل:

#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".

مثال 2

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

#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.

مثال 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;
}

الإخراج:

0
1

في هذا المثال، إذا كانت مجموعة s1 أقل من مجموعة s2، فإنها ستعود 1، وإلا ستعود 0。

مثال 4

#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، فإن عملية الدخول ناجحة، وإلا فإن عملية الدخول فاشلة.

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