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

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

C++ Flow Control

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

C++ Array & String

C++ Data Structure

C++ Class & Object

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

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

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

C++ Reference Manual

C++ set rbegin() Usage and Example

Set (الجمع) في STL الخاصة بـ C++

C++ set rbegin()Function used to return a reference to the last element of the set containerReverse iterator.

set'sReverse iteratorMoves in the opposite direction and increments until it reaches the beginning of the set container (the first element).

Syntax

      reverse_iterator rbegin(); // Until C++ 11
const_reverse_iterator rbegin() const; // Until C++ 11
      reverse_iterator rbegin() noexcept; // Starting from C++ 11
const_reverse_iterator rbegin() const noexcept; // Starting from C++ 11

المعدل

لا يوجد

القيمة التي تعود

يستعيد مبرمج التكرار العكسي (reverse iterator) الذي يشير إلى العنصر الأخير في المجموعة.

تعقيد

لا يتغير.

مرونة المبرمج التكرار

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

نزاع البيانات

يمكن الوصول إلى نسخة غير ثابتة أو نسخة ثابتة ولا يمكن تعديلها لا يمكن تعديل مجموعة من مكونات الحاوية. والوصول إلى عناصر المجموعة هو آمن.

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

هذه الدالة لن تسبب أي استثناء.

مثال 1

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

#include <iostream>
#include <set>
using namespace std;
int main ()
{
  set<int> myset = {10, 50, 30, 40, 20};
  
  // عرض المحتوى:
  cout << "العناصر هي: " << endl;
  set<int>::reverse_iterator rit;
  for (rit=myset.rbegin(); rit!=myset.rend(); ++rit)
    cout << *rit << '\n';
  return 0;
}

الإخراج:

العناصر هي: 
50
40
30
20
10

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

لأن المجموعة تستخدم ترتيب الأصابع لتخزين العناصر، لذا عند تمرير المجموعة باستخدام الدوال المتكررة، سيتم الحصول على الترتيب التالي، وهو ترتيب الأصابع للключ.

مثال 2

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

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

الإخراج:

ddd
ccc
bbb
aaa

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

لأن المجموعة تستخدم ترتيب الأصابع لتخزين العناصر، لذا عند تمرير المجموعة باستخدام الدوال المتكررة، سيتم الحصول على الترتيب التالي، وهو ترتيب الأصابع للключ.

مثال 3

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

#include <set>  
#include <iostream>  
  
int main( )  
{  
   using namespace std;     
   set<int> s1;  
   set<int>::iterator s1_Iter;  
   set<int>::reverse_iterator s1_rIter;  
  
   s1.insert(10);  
   s1.insert(20);  
   s1.insert(30);  
  
   s1_rIter = s1.rbegin();  
   cout << "العنصر الأول في المجموعة المعكوسة هو "  
        << *s1_rIter << "." << endl;  
  
   // يمكن استخدام begin للبدء في التدوير  
   // يمكن مرور المجموعة بالترتيب
   cout << "المجموعة هي:";  
   for (s1_Iter = s1.begin(); s1_Iter != s1.end(); s1_Iter++)  
      cout << " " << *s1_Iter;  
   cout << endl;  
  
   // يمكن استخدام rbegin للبدء في التدوير   
   // يمكن مرور المجموعة بالعكس
   cout << "المجموعة المعكوسة هي:";  
   for (s1_rIter = s1.rbegin(); s1_rIter != s1.rend(); s1_rIter++)  
      cout << " " << *s1_rIter;  
   cout << endl;  
  
   // يمكن حذف العنصر عن طريق إزالة الإشارة إلى مفتاح عنصر المجموعة   
   s1_rIter = s1.rbegin();  
   s1.erase(*s1_rIter);  
  
   s1_rIter = s1.rbegin();  
   cout << "بعد الحذف، العنصر الأول "  
        << "في المجموعة المعكوسة هي " << *s1_rIter << "." << endl;  
        
return 0;        
}

الإخراج:

العنصر الأول في المجموعة المعكوسة هو 30.
المجموعة هي: 10 20 30
المجموعة المعكوسة هي: 30 20 10
بعد الحذف، العنصر الأول في المجموعة المعكوسة هو 20.

مثال 4

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

#include <iostream>
#include <string>
#include <set>
using namespace std;
int main ()
{
  set<int> marks = {400, 350, 465, 290, 410};
   cout << "النقاط" << '\n';
   cout << "______________________\n";
   
  set<int>::reverse_iterator rit;
  لـ (rit=marks.rbegin(); rit!=marks.rend(); ++rit)
    cout << *rit << '\n';
    auto ite = marks.rbegin();
 
    cout << "\nأعلى الدرجات هي: " << *ite << " \n";
  return 0;
  }

الإخراج:

النقاط
______________________
465
410
400
350
290
أعلى الدرجات هي: 465

في الأمثلة أعلاه، تم تحقيق إعداد العلامة باستخدام العلامة كключ. مما يتيح لنا الاستفادة من ميزات تصنيف الأوتوماتيكي وتحديد أعلى الدرجات.

Set (الجمع) في STL الخاصة بـ C++