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

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

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

المعادلات في C++

مجموعات C++ و

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

مفاهيم C++ وكتل

المراجع في C++

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

تعليمية STL C++

دليل C++

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

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

C ++ set crendاستخدام الدالة لـالترتيب المعكوسيتمالمحولات الثابتةيذهب إلى نهاية المجموعة (العنصر التالي للعنصر الأخير). يشبه العنصر قبل الأول في المحول غير العكسي.

النص

const_reverse_iterator crend() const noexcept; // بدءاً من C++ 11

المتغيرات

لا يوجد

القيمة المرجعة

سيقوم بإرجاع const_reverse_iterator إلى العنصر التالي للعنصر الأخير في المحول العكسي.

معقد

لا يتغير.

صلاحية الم迭代ر

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

التنافس على البيانات

المجموعة يتم زيارتها.

الوصول إلى عناصر المجموعة هو آمن.

الأمان من الناحية الاستثنائية

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

مثال 1

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

#include <iostream>
#include <set>
using namespace std;
int main ()
{
  set<int> myset = {40, 20, 50, 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

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

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

مثال 2

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

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

الإخراج:

ddd
ccc
bbb
aaa

في المثال السابق، استخدمنا دائرة while لتدوير التجميع بترتيب معكوس.

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

مثال 3

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

#include <iostream>
#include <set>
#include <algorithm>
using namespace std;
int main()
{
  set<int> c = {3, 1, 2};
  for_each(c.crbegin(), c.crend(), [](const int& x) {
    cout << x << endl;
  });
}

الإخراج:

3
2
1

في المثال السابق، عادت عناصر set بالترتيب المعكوس.

مثال 4

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

#include <iostream>
#include <string>
#include <set>
using namespace std;
int main ()
{
  set<int> emp = {1000,2500,4500,1200,3000};
   cout << "الراتب" << '\n';
   cout<<"______________________\n";
   
  set<int>::const_reverse_iterator rit;
  للدوران (rit=emp.crbegin(); rit
eq emp.crend(); ++rit);
    cout << *rit << '\n';
    auto ite = emp.crbegin();
 
    cout << "\nأعلى راتب: " << *ite << " \n";
  return 0;
  }

الإخراج:

الراتب
______________________
4500
3000
2500
1200
1000
أعلى راتب: 4500

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

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