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

دليل الأساسيات في C++

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

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

مجموعات C++ و سلاسل

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

فئات C++ و أوبجكتات

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

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

دليل STL في C++

دليل مرجع C++

طريقة استخدام وظيفة rbegin() في C ++ map و مثال

map (المعينات) في C++

C ++ map rbegin()الوظيفة تستخدم لتحويل إلى العنصر الأخير في حاوية mapالمحولات العكسية

في mapالمحولات العكسيةيتحرك بشكل عكسي ويزداد حتى يصل إلى بداية كائن map (العنصر الأول).

النحو

      reverse_iterator rbegin(); // قبل C++ 11
const_reverse_iterator rbegin() const; // قبل C++ 11
      reverse_iterator rbegin() noexcept; // من C++ 11
const_reverse_iterator rbegin() const noexcept; // من C++ 11

المتغيرات

لا يوجد

النتيجة

هي تعود إلى محول آخر عنصر في map.

مثال 1

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

#include 
#include 
using namespace std;
int main ()
{
  map<char, int> mymap;
  
  mymap['x'] = 100;
  mymap['y'] = 200;
  mymap['z'] = 300;
  map<char, int>::reverse_iterator rit;
  for (rit=mymap.rbegin(); rit!=mymap.rend(); ++rit)
    cout << rit->first << " = " << rit->second << '\n';
  return 0;
}

الإخراج:

z = 300
y = 200
x = 100

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

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

مثال 2

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

#include 
#include 
#include 
#include <iterator>
using namespace std;
 
int main() {
 
	map<string, int> mapEx = {
			{"aaa", 10},
			{"ddd", 11},
			{"bbb", 12},
			{"ccc", 13}
	};
 
	map<string, int>::reverse_iterator it = mapEx.rbegin();
 
	while (it != mapEx.rend()) {
		string word = it->first;
		int count = it->second;
		cout << word << " :: " << count << endl;
		it++;
	}
	return 0;
}

الإخراج:

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

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

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

实例3

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

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

الإخراج:

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

在上面的示例中,rbegin()函数返回反转容器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::reverse_iterator rit;
  for (rit=marks.rbegin(); rit!=marks.rend(); ++rit)
    cout << rit->first << "   |  " << rit->second << '\n';
    auto ite = marks.rbegin();
 
    cout << "\n最高分是: "<< ite->first <<" \n";
    cout << "Topper的卷数是: "<< ite->second << "\n";
  return 0;
  }

الإخراج:

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

في الأمثلة أعلاه، تم تنفيذ map علامة، حيث يتم تخزين ‘العدد’ كقيمة، والعلامة كключ. مما يتيح لنا استخدام وظيفة الترتيب التلقائي في map، مما يتيح لنا أيضًا تحديد العدد الذي يحتوي على أعلى علامة.

map (المعينات) في C++