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


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


映射是關聯容器,以映射方式存儲元素。每個元素都有一個鍵值和一個映射值。任何兩個映射值都不能具有相同的鍵值。

map::at()

at()函數用於引用映射到鍵值的元素,該鍵值作為函數的參數給出。例如,如果我們有一個字符串“hi”映射到整數1,則將整數1作為at()函數的參數傳遞將返回字符串“hi”。

at()函數與運算符有何不同[]
at()函數檢查容器的範圍,並在嘗試訪問不在該範圍內的元素時引發異常,而operator []不檢查容器的範圍,並且在不屬於該範圍的元素時顯示未定義的行為訪問。


用法:

mapname.at(key)
參數:
Key value mapped to the element to be fetched.
返回:
Direct reference to the element at the given key value.

例子:

Input : map mymap;
          mymap['a'] = 1;
          mymap.at('a');
Output: 1

Input : map mymap;
          mymap["abcd"] = 7;
          mymap.at("abcd");
Output: 7

錯誤和異常

1.如果該鍵不存在於映射中,則拋出out_of_range。 2.否則,它具有強大的無異常拋出保證。

// CPP program to illustrate 
// Implementation of at() function 
#include <iostream> 
#include <map> 
#include <string> 
using namespace std; 
  
int main() 
{ 
    // map declaration 
    map<string, int> mymap; 
  
    // mapping strings to integers 
    mymap["hi"] = 1; 
    mymap["welcome"] = 2; 
    mymap["thanks"] = 3; 
    mymap["bye"] = 4; 
  
    // printing the integer mapped 
    // by string "thanks" 
    cout << mymap.at("thanks"); 
    return 0; 
}

輸出:

3

時間複雜度:O(登錄)

at()函數與運算符有何不同[]
at()函數檢查容器的範圍,並在嘗試訪問不在該範圍內的元素時引發異常,而operator []不檢查容器的範圍,並且在不屬於該範圍的元素時顯示未定義的行為訪問。



相關用法


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