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

Usage and example of C++ map crbegin() function

STL map (المسار) الخاصة بـ C++

C ++ map crbegin()Function used to return a constant reverse iterator referring to the last element of the map container.

The reverse iterator of the constant map will move backward and increment until it reaches the beginning of the map container (the first element) and points toConstantElement.

Grammar

const_reverse_iterator crbegin() const noexcept; // From C++ 11

المتغيرات

لا يوجد

النتيجة

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

مثال 1

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

#include 
#include 
using namespace std;
int main ()
{
  map<char, int> mymap;
  mymap['b'] = 100;
  mymap['a'] = 200;
  mymap['c'] = 300;
  cout << "ترتيب mymap بشكل عكسي:";
  for (auto rit = mymap.crbegin(); rit != mymap.crend(); ++rit)
    cout << " :: " << rit->first << ':' << rit->second << ' ';
  cout << '\n';
  عدد 0;
}

الإخراج:

ترتيب mymap بشكل عكسي: [c:300] [b:100] [a:200]

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

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

مثال 2

دعونا نرى مثالاً بسيطاً، باستخدام循环 while لاستدلال على map بترتيب عكسي.

#include 
#include 
#include 
#include <iterator>
using namespace std;
 
int main() {
 
	// إنشاء وتحديد map من string وint
	map<string, int> mapEx = {
			{"aaa", 10},
			{"ddd", 11},
			{"bbb", 12},
			{"ccc", 13}
	};
 
	// إنشاء موجه map واتجاهه إلى نهاية map.
	 map<string, int>::const_reverse_iterator it = mapEx.crbegin();
 
	// استخدام Iterator للاستدلال على map حتى البداية.
	while (it != mapEx.crend()) {
		// الوصول إلى KEY التي تشير إليها.
		string word = it->first;
 
		// الوصول إلى VALUE التي تشير إليها.
		int count = it->second;
 
		cout << word << " :: " << count << endl;
 
		// زيادة معرف الموجه لتحديد المورد التالي
		it++;
	}
	عدد 0;
}

الإخراج:

ddd :: 11
ccc :: 13
bbb :: 12
aaa :: 10

在上面的示例中,我们使用while循环以相反的顺序对map进行const_iterate,并使用crbegin()函数初始化map的最后一个元素。

因为map因此按键的排序顺序存储元素,所以在map上进行迭代将导致上述顺序,即键的排序顺序。

实例3

让我们看一个简单的示例,以获取反向map的第一个元素。

#include 
#include 
#include 
using namespace std;
int main ()
{
  map m1 = {
                { 1, 10},
                { 2, 20 },
                { 3, 30 } };
          
    auto ite = m1.crbegin();
 
    cout << "反向map容器m1的第一个元素是:";
    cout << "{" << ite->first << ", "
         << ite->second << "}\n";
  عدد 0;
  }

الإخراج:

反向map容器m1的第一个元素是: {3, 30}

在上面的示例中,crbegin()函数返回反转map容器m1的第一个元素,即{3,30}。

实例4

让我们看一个简单的示例,对最高分进行排序和计算。

#include 
#include 
#include 
using namespace std;
int main ()
{
  map marks = {
                { 400, 10},
                { 312, 20 },
                { 480, 30 },
                { 300, 40 },
                { 425, 50 }};
   cout << "Marks" << " | " << "Roll Number" << '\n';
   cout<<"______________________\n";
   
  map<int,int>::const_reverse_iterator ٩٢ٯ;
  for (٩٢ٯ = ٭٪٬٥٢ ٦٬ٯ٥ ٯ ٢ٯ ٦٬ٯ٥ ٮ٥; ٩٢ٯ ٬١٤ ٯ ٭٪٬٥٢ ٦٬ٯ٥ ٮ٥; ٩٢ٯ ٮ٥ ٢ٯ ٯ ٢ٯ ٮ٥)
    cout << ٢ٯ ١٤ ٢ٯ ٯ ١٤ ٢ٯ ٯ ٢١٨ ٯ ٢ٯ ٯ ١٤ ٢ٯ ٯ ٢١٨ ٮ٥ ٢ٯ ٯ ١٤ ٢ٯ ٮ٥;
    auto ٩٢ٯ ٢ٯ ٭٪٬٥٢ ٦٬ٯ٥ ١٤ ٭٪٬٥ ٯ ٢ٯ ٦٬ٯ٥ ٮ٥;
 
    cout << ٢ٯ١٤ٯ١٨٧٨ٯ ٢ٯٯ٢٨ٯ١٧ ٯ ١٤٥ ٮ٥ ٢١٨ ٮ٥ ٢١٨ ٮ٥;
    cout << ٢ٯ١٤ٯ١٨٧٨ٯ ٢ٯٯ٢٨ٯ١٧ ٯ ١٤٥ ٮ٥ ١٤٢١٧ ٯ ١٤٢١٨ ٮ٥ ٢١٨ ٯ ١٤٢١٨ ٮ٥ ٢١٨ ٮ٥;
  عدد 0;
  }

الإخراج:

الدرجات | رقم الطبعة
______________________
480 | 30
425 | 50
400 | 10
312 | 20
300 | 40
أعلى درجة هي: 480 
عدد الطبعة الخاصة بـ Topper هو: 30

في المثال السابق، تم تنفيذ map العلامة، حيث تم تخزين ‘رقم الطبعة (Roll Number)’ كقيمة، والعلامة كالمفتاح. مما يسمح لنا باستخدام وظيفة الترتيب التلقائي في map، ويجعل من الممكن التعرف على رقم الطبعة الخاص بالعنصر الأعلى في العلامة.

STL map (المسار) الخاصة بـ C++