當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C++ map at()用法及代碼示例


C++ 映射 at() 函數用於訪問映射中具有給定鍵值的元素。如果訪問的鍵不在Map中,它會拋出異常 out_of _range。

用法

考慮鍵值 k,語法為:

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

參數

k: 要訪問其映射值的元素的鍵值。

返回值

它返回對具有鍵值的元素的映射值的引用。

例子1

讓我們看一個訪問元素的簡單示例。

#include <iostream>
#include <string>
#include <map>

using namespace std;

int main ()
{
  map<string,int> m = {
                { "A", 10 },
                { "B", 20 },
                { "C", 30 } };

  for (auto& x:m) {
    cout << x.first << ":" << x.second << '\n';
  }
  return 0;
}

輸出:

A:10
B:20	
C:30

上麵使用了 at() 函數來訪問 map 的元素。

例子2

讓我們看一個使用鍵值添加元素的簡單示例。

#include <iostream>
#include <string>
#include <map>

using namespace std;

int main ()
{
  map<int,string> mymap = {
                { 101, "" },
                { 102, "" },
                { 103, ""} };

  mymap.at(101) = "Java"; 
  mymap.at(102) = "T";
  mymap.at(103) = "Point";


		// prints value associated with key 101, i.e. Java
  cout<<mymap.at(101); 
          // prints value associated with key 102, i.e T
  cout<<mymap.at(102);
          // prints value associated with key 103, i.e Point	
  cout<<mymap.at(103);

  return 0;
}

輸出:

JavaTPoint 

在上麵的例子中,at() 函數用於使用關聯的鍵值在初始化後添加元素。

例子3

讓我們看一個簡單的示例來更改與鍵值關聯的值。

#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<<"Elements are:" <<endl;
  for (auto& x:mymap) {
    	cout << x.first << ":" << x.second << '\n';
  }


  mymap.at(100) = "Nidhi"; // changes the value associated with key 100 to Nidhi
  mymap.at(300) = "Pinku"; // changes the value associated with key 300 to Pinku
  mymap.at(500) = "Arohi"; // changes the value associated with key 500 to Arohi
  
  
  cout<<"\nElements after make changes are:" <<endl;
  for (auto& x:mymap) {
    	cout << x.first << ":" << x.second << '\n';
  }
  
  return 0;
}

輸出:

Elements are:
100:Nikita
200:Deep
300:Priya
400:Suman
500:Aman

Elements after make changes are:
100:Nidhi
200:Deep
300:Pinku
400:Suman
500:Arohi

在上麵的示例中,at() 函數用於更改與其鍵值關聯的值。

示例 4

讓我們看一個簡單的例子來處理?超出範圍?例外。

#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'); 
          // since there is no key with value z in the map, it throws an exception 
        
    } catch(const out_of_range &e) {
        cout<<endl<<"Out of Range Exception at "<<e.what();
}

輸出:

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

上麵的示例拋出 out_of_range 異常,因為映射中沒有值為 z 的鍵。




相關用法


注:本文由純淨天空篩選整理自 C++ map at() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。