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

C++ Tutoriel de base

C++ Contrôle de flux

C++ Fonctions

C++ Tableaux & chaînes de caractères

C++ Structures de données

C++ Classes & objets

C++ Pointeurs

C++ Héritage

C++ Tutoriel STL

C++ Manuel de référence

C++ Fonction map rend() Utilisation et Exemple

C++ STL map (conteneur)

C ++ map rend()La fonction est utilisée pourOrdre inverseRetourner l'itérateur à la fin du map (pas le dernier élément, mais l'élément immédiatement avant le dernier). Cela est similaire à l'élément avant le premier élément dans un conteneur non inversé.

Remarque :-Ceci est un placeholder. Il n'y a pas d'élément à cet endroit, l'accès tentative est un comportement non défini.

Syntaxe

      reverse_iterator rend(); // de C++ 11 avant
const_reverse_iterator rend() const; // de C++ 11 avant
      reverse_iterator rend() noexcept; //de C++ 11 Début
const_reverse_iterator rend() const noexcept;  //de C++ 11 Début

Paramètre

Aucun

Valeur de retour

Elle renvoie l'itérateur en arrière vers l'élément suivant immédiatement après le dernier élément du conteneur inversé.

Exemple1

Laissez-nous voir un exemple simple de la fonction rend() :

#include <iostream>
#include <map>
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;
}

Sortie :

z = 300
y = 200
x = 100

Dans l'exemple ci-dessus, la fonction rend() est utilisée pour renvoyer l'itérateur en arrière vers l'élément suivant immédiatement après le dernier élément du conteneur inversé.

Comme la map stocke les éléments dans un ordre de tri des clés, l'itération sur la map entraînera l'ordre ci-dessus, c'est-à-dire l'ordre de tri des clés.

Exemple2

Laissez-nous voir un exemple simple, utilisant une boucle while pour parcourir le map dans l'ordre inverse :

#include <iostream>
#include <map>
#include <string>
#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;
}

Sortie :

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

Dans l'exemple précédent, nous avons utilisé une boucle while pour itérer sur la map dans un ordre inverse.

Comme la map stocke les éléments dans un ordre de tri des clés, l'itération sur la map entraînera l'ordre ci-dessus, c'est-à-dire l'ordre de tri des clés.

Exemple3

Voyons un exemple simple.

#include <iostream>
#include <map>
using namespace std;
int main(void) {
   map<char, int> m = {
            {'a', 1},
            {'b', 2},
            {'c', 3},
            {'d', 4},
            {'e', 5},
            };
   cout << "La map contient les éléments suivants dans un ordre inverse:\n"
   for (auto it = m.rbegin(); it != m.rend(); ++it)
      cout << it->first << " = " << it->second << endl;
   return 0;
}

Sortie :

La map contient les éléments suivants dans un ordre inverse:
e = 5
d = 4
c = 3
b = 2
a = 1

Dans l'exemple précédent, les éléments de la map sont renvoyés dans un ordre inverse.

Exemple4

Voyons un exemple simple, classant et calculant le salaire le plus élevé.

#include <iostream>
#include <string>
#include <map>
using namespace std;
int main ()
{
  map<int,int> emp = {
                { 1000, 10},
                { 2500, 20 },
                { 4500, 30 },
                { 3000, 40 },
                { 5500, 50 \}};
   cout << "Salary \t| \tID \n"
   cout<<"______________________\n";
   
  map<int,int>::reverse_iterator rit;
   for (rit=emp.rbegin(); rit!=emp.rend(); ++rit){}{
    cout << rit->first << " \t| \t" << rit->second << \n";
    auto ite = emp.rbegin();
    cout << "\nSalary: \" << ite->first << " <<" << \n";
    cout << "ID est : " << ite->second << "\n";
    }
  return 0;
  }

Sortie :

Salaire | ID
______________________
5500   | 50
4500   | 30
3000   | 40
2500   | 20
1000   | 10
Salaire le plus élevé : 5500 
ID est : 50

Dans l'exemple ci-dessus, un conteneur emp a été implémenté, où l'ID est stocké comme valeur et le salaire comme clé. Cela nous permet d'utiliser la fonction de tri automatique de map et de déterminer l'ID de l'élément le plus élevé du salaire.

C++ STL map (conteneur)