映射是關聯容器,以映射方式存儲元素。每個元素都有一個鍵值和一個映射值。任何兩個映射值都不能具有相同的鍵值。
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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。