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

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

تحكم في التدفق C++

الوظائف الخاصة بـ C++

مجموعات بيانات C++ و 字ور

مباني بيانات C++

فئات C++ و كائنات

المؤشرات الخاصة بـ C++

الوراثة الخاصة بـ C++

تعليمية STL الخاصة بـ C++

دليل C++

استخدام C++ set crbegin() و مثال

Set (الجمع) الخاص بـ C++

C ++ مجموعة crbegin()الوظيفة تستخدم لتحويل مؤشر ثابت عكسي يشير إلى العنصر الأخير في صندوق المجموعة.

مرجع ثابت عكسي للمجموعة يتحرك إلى الوراء ويكبر حتى يصل إلى بداية صندوق المجموعة (العنصر الأول) ويشير إلىثابتالعنصر.

النحو

const_reverse_iterator crbegin() const noexcept; // منذ C++ 11

المعدل

لا يوجد

القيمة المقدمة

هي تعود إلى مؤشر ثابت عكسي يشير إلى العنصر الأخير في المجموعة.

المعدل

لا يوجد

القيمة المقدمة

هي تعود إلى مؤشر ثابت عكسي يشير إلى العنصر الأخير في الرسم البياني.

معقد

لا يتغير.

فعالية المؤشر

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

تداخل البيانات

يتم الوصول إلى المحتويات.

الوصول إلى عناصر المجموعة في نفس الوقت آمن.

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

هذه الدالة لا ترفع استثناءً أبدًا.

المثال 1

لنرى مثالاً بسيطاً لدالة crbegin():

#include <iostream>
#include <set>
using namespace std;
int main ()
{
  set<int> myset = {50,20,40,10,30};
  cout << "myset بالترتيب المعكوس:";
  for (auto rit = myset.crbegin(); rit != myset.crend(); ++rit)
    cout << ' ' << *rit;
  cout << '\n';
  return 0;
}

الإخراج:

myset بالترتيب المعكوس: 50 40 30 20 10

في المثال السابق، تم استخدام دالة crbegin() لتقديم مرجع إلى مسار عكسي ثابت، يشير إلى العنصر الأخير في مجموعة myset.

بما أن المجموعات تخزن العناصر وفقًا للترتيب المفتاحي، فإن تمرير المجموعة يؤدي إلى الترتيب المذكور أعلاه، وهو ترتيب المفاتيح.

المثال 2

نحنُ سنرى مثالاً بسيطاً، حيثُ نمرُ عبر المجموعة بترتيب معكوس باستخدام الدوال while:

#include <iostream>
#include <set>
#include <string>
#include <iterator>
using namespace std;
 
int main() {
 
	// إنشاء وتحديد مجموعة من الأحرف & العدد
	set<string> setEx = {"bbb", "ccc", "aaa", "ddd"};
	// إنشاء معادلة استدلال وتوجيهها إلى نهاية المجموعة
	 const_reverse_iterator it = setEx.crbegin();
 
	// تدوير الاستدلال في المجموعة حتى البداية
	while (it != setEx.crend()) {
		// الوصول إلى المفتاح الذي يشير إليه من العنصر
		string word = *it;
 
		cout << word << endl;
 
		// زيادة معادلة الاستدلال ليرشح العنصر التالي
		it++;
	}
	return 0;
}

الإخراج:

ddd
ccc
bbb
aaa

في المثال السابق، قمنا باستخدام دورة while لتدوير المجموعة باستخدام const_iterate بالترتيب العكسي، واستخدمنا دالة crbegin() لتعيين العنصر الأخير في المجموعة.

بما أن المجموعات تخزن العناصر وفقًا للترتيب المفتاحي، فإن تمرير المجموعة يؤدي إلى الترتيب المذكور أعلاه، وهو ترتيب المفاتيح.

مثال 3

دعنا نرى مثالاً بسيطاً للحصول على العنصر الأول في المجموعة العكسية:

#include <iostream>
#include <string>
#include <set>
using namespace std;
int main ()
{
  set<int> s1 = {20, 40, 10, 30};
          
    auto ite = s1.crbegin();
 
    cout << "العنصر الأول في المجموعة العكسية s1 هو: ";
    cout << *ite;
  return 0;
  }

الإخراج:

العنصر الأول في المجموعة العكسية s1 هو: 40

في المثال السابق، يعود crbegin() دالة إلى العنصر الأول في المجموعة العكسية s1، وهو 40.

مثال 4

دعنا نرى مثالاً بسيطاً لإجراء ترتيب وتحليل الأعلى نقاط:

#include <iostream>
#include <string>
#include <set>
using namespace std;
int main ()
{
  set<int> marks = {400, 220, 300, 250, 365};
   cout << "Marks" << " | " << "Roll Number" << '\n';
   cout << "______________________\n";
   
  const_reverse_iterator rit;
  لـ (rit=marks.crbegin(); rit!=marks.crend(); ++rit)
    cout << *rit << '\n';
    auto ite = marks.crbegin();
 
    cout << "\nأعلى نتيجة هي: " << *ite << "\n";
  return 0;
  }

الإخراج:

الدرجات | رقم الطالب
______________________
400
365
300
250
220
أعلى نتيجة هي: 400

في الأمثلة أعلاه، تم تنفيذ علامة مجموعة، حيث يتم تخزين عناصر هذه المجموعة كمفاتيح. يجعلنا دالة crbegin() استخدام وظيفة الترتيب التلقائي للمجموعة، وتحديد أعلى نتيجة.

Set (الجمع) الخاص بـ C++