English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
يُستخدم مكوّن set في C++ لأغراض خمس
المكوّن البديهيلإنشاء وعاء فارغ يحتوي على عناصر صفر
مكوّن النطاقلإنشاء وعاء تحتوي على نطاق محتوى من [first،last)
مكوّن النسخلإنشاء مجموعة تحتوي على نسخ من عناصر وعاء موجود
مكوّن الاستبداللإنشاء وعاء باستخدام لغة الاستبدال مع عناصر أخرى
مكوّن برامج التشغيل المُؤسسلإنشاء مجموعة تحتوي على قائمة برامج التشغيل
explicit set (const key_compare& comp = key_compare(), const allocator_type& alloc = allocator_type()); // إلى C++ 11 explicit set (const key_compare& comp = key_compare(), const allocator_type& alloc = allocator_type()); explicit set (const allocator_type& alloc); // بدءًا من C++ 11
template <class InputIterator> set (InputIterator first, InputIterator last, const key_compare& comp = key_compare(), const allocator_type& alloc = allocator_type()); // إلى C++ 11 template <class InputIterator> set (InputIterator first, InputIterator last, const key_compare& comp = key_compare(), const allocator_type& = allocator_type()); // بدءًا من C++ 11
set (const set& x); // إلى C++ 11 set (const set& x); set (const set& x, const allocator_type& alloc); // بدءًا من C++ 11
set (set&& x); set (set&& x, const allocator_type& alloc); // بدءًا من C++ 11
set (initializer_list<value_type> il, const key_compare& comp = key_compare(), const allocator_type& alloc = allocator_type()); // بدءًا من C++ 11
comp: عنصر وظيفة مقارنة يستقبلان جزءين رئيسيين، إذا كان الجزء الأول قبل الجزء الثاني، يعود صحيح، وإلا يعود خطأ. بالافتراض، يستخدم less <key_type> شرط.
alloc: عنصر توزيع لكل تخصيص ذاكرة في هذا الماكرو.
first: وضع مبدأ التحليل في أول موقف من النطاق.
last: وضع مبدأ التحليل في أخر موقف من نطاق.
x: مجموعة الأهداف من نفس النوع.
il:عنصر قائمة التوليد لمجموعة الأهداف، سيتم نسخ العناصر منه.
وظيفة الماكرو لا تعود أي قيمة.
برای سازنده خالی و سازنده حرکت، پیچیدگی ثابت خواهد بود.
برای تمام موارد دیگر، اگر عناصر مرتب شده باشند، پیچیدگی فاصله بین اشارهگرها خطی خواهد بود.
اگر عناصر جعبههای مجموعه set در سازنده حرکت منتقل شوند، تمام اشارهگرها، ابرنویسها و ارجاعهای مرتبط با x بیاثر خواهند شد.
دسترسی به تمام عناصر کپی شده.
در صورت بروز استثنا، هیچ اثری ندارد.
دعونا مثال سادهای از سازنده پیشفرض را ببینیم:
#include <iostream> #include <set> using namespace std; int main(void) { // سازنده پیشفرض set<char> s; int size = s.size(); cout << "حجم مجموعه s برابر با: " << size; عدد 0; }
الإخراج:
حجم مجموعه s برابر با: 0
در مثال بالا، s یک مجموعه خالی است، بنابراین اندازه آن برابر با 0 است.
دعونا مثال سادهای از سازنده دامنه را ببینیم:
#include <iostream> #include <set> using namespace std; int main(void) { int evens[] = {2,4,6,8,10}; // سازنده دامنه set<int> myset(evens, evens+5); cout << "حجم جعبههای مجموعه myset برابر با: " << myset.size(); عدد 0; }
الإخراج:
حجم جعبههای مجموعه myset برابر با: 5
در مثال بالا، مجموعه myset از عناصر even تشکیل شده است.
دعونا مثال سادهای از سازنده کپی را ببینیم:
#include <iostream> #include <set> using namespace std; int main(void) { // سازنده پیشفرض std::set<int> s1; s1.insert(5); s1.insert(10); cout << "حجم جعبههای مجموعه s1 برابر با: " << s1.size(); // سازنده کپی set<int> s2(s1); cout << "\nحجم جعبههای مجموعه جدید s2 برابر با: " << s2.size(); عدد 0; }
الإخراج:
حجم جعبههای مجموعه s1 برابر با: 2 حجم جعبههای مجموعه جدید s2 برابر با: 2
در مثال بالا، s2 یک کپی از مجموعه s1 است.
دعونا مثال سادهای از سازنده حرکت را ببینیم:
#include <iostream> #include <set> using namespace std; int main(void) { // سازنده پیشفرض set<char> s1; s1.insert('x'); s1.insert('y'); cout << "حجم جعبههای مجموعه s1 برابر با: " << s1.size(); // سازنده حرکت set<char> s2(move(s1)); cout << "\nحجم جعبههای مجموعه جدید s2 برابر با: " << s2.size(); عدد 0; }
الإخراج:
حجم جعبههای مجموعه s1 برابر با: 2 حجم جعبههای مجموعه جدید s2 برابر با: 2
در مثال بالا، محتوای s1 به set s2 منتقل شده است.
دعونا مثال سادهای از سازنده لیستهای اولیه را ببینیم:
#include <iostream> #include <set> #include <string> using namespace std; int main() { // بناءً على قائمة التهيئة set<string> fruit { "orange", "apple", "mango", "peach", "grape" }; cout << "حجم fruit في المحulator هو: " << fruit.size(); عدد 0; }
الإخراج:
حجم fruit في المحulator هو: 5
النموذج أعلاه يخلق مجموعة من النصوص باستخدام initializer_list.