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

C++ map at() 函数使用方法及示例

C++ STL map (conteneur)

C ++ map at()函数用于通过给定的键值访问map中的元素。如果map中不存在所访问的键,则抛出out_of_range异常。

语法

假设键值为k,语法为:

mapped_type& at(const key_type& k);
const mapped_type& at(const key_type& k) const;

参数

k:要访问其map值的元素的键值。

返回值

它使用键值返回对元素map值的引用。

Exemple1

让我们看一个访问元素的简单示例。

#include <iostream>
#include <string>
#include <map>  
int main ()
{
  map<string,int> m = {
                {"A", 10 },
                {"B", 20 },
                {"C", 30 };
  for (auto& x: m) {
    cout << x.first << " : " << x.second << '\n';
  }
  return 0;
}

Sortie :

A : 10
B : 20	
C : 30

Dans celui-ci, la fonction at() est utilisée pour accéder aux éléments de la map.

Exemple2

Laissez-nous voir un exemple simple pour ajouter des éléments en utilisant leurs clés.

#include <iostream>  
#include <string>  
#include <map>  
  
using namespace std;  
int main ()
{
  map<int,string> mymap= {
                { 101, "" },
                { 102, "" },
                { 103, ""} };
  mymap.at(101) = "w3codebox" 
  mymap.at(102) = ".";
  mymap.at(103) = "com";
//Afficher la clé101la valeur, c'est-à-dire w3codebox
  cout << mymap.at(101); 
 // Afficher la clé102la valeur, c'est-à-dire .
  cout << mymap.at(102);
 // Afficher la clé103la valeur, c'est-à-dire com	
  cout << mymap.at(103);
  return 0;
}

Sortie :

oldtoolbag.com

Dans l'exemple ci-dessus, la fonction at() est utilisée pour ajouter des éléments après l'initialisation en utilisant la clé associée.

Exemple3

Laissez-nous voir un exemple simple pour modifier la valeur associée à la clé.

#include <iostream>  
#include <string>  
#include <map>  
  
using namespace std;  
int main ()
{
  map<int,string> mymap= {
                { 100, "Nikita"},
                { 200, "Deep"  },
                { 300, "Priya" },
                { 400, "Suman" },
                { 500, "Aman"  }};
                
  cout << "L'élément est:" << endl;
  for (auto& x: mymap) {
    	cout << x.first << " : " << x.second << '\n';
  }
  mymap.at(100) = "Nidhi"; // Modifier la clé100 de la valeur est modifiée en Nidhi
  mymap.at(300) = "Pinku"; // Modifier la clé300 de la valeur est modifiée en Pinku
  mymap.at(500) = "Arohi"; // Modifier la clé500 de la valeur est modifiée en Arohi
  
  
  cout << "\nL'élément modifié est:" << endl;
  for (auto& x: mymap) {
    	cout << x.first << " : " << x.second << '\n';
  }
  
  return 0;
}

Sortie :

L'élément est :
100: Nikita
200: Deep
300: Priya
400: Suman
500: Aman
L'élément modifié est :
100: Nidhi
200: Deep
300: Pinku
400: Suman
500: Arohi

Dans l'exemple ci-dessus, la fonction at() est utilisée pour modifier la valeur associée à la clé.

Exemple4

Laissez-nous voir un exemple simple pour traiter l'exception "Hors de portée" ?

#include <iostream>  
#include <string>  
#include <map>  
  
using namespace std;  
int main ()
{
  map<char,string> mp= {
                { 'a',"Java"},
                { 'b', "C++"},
                { 'c', "Python" };
            
    cout << endl << mp.at('a');
    cout << endl << mp.at('b');
    cout << endl << mp.at('c');
    
    try {
        mp.at('z'); 
          // Parce que le map n'a pas de clé avec la valeur z, il lève une exception
        
    }
        cout << endl << "Out of Range Exception at " << e.what();
}

Sortie :

Java
C++
Python
Exception Out of Range à map::at

L'exemple ci-dessus lève une exception out_of_range, car il n'y a pas de clé avec la valeur z dans le map.

C++ STL map (conteneur)