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 lower_bound()用法及代码示例
- C++ map max_size()用法及代码示例
- C++ map begin()用法及代码示例
- C++ map rbegin()用法及代码示例
- C++ map size()用法及代码示例
- C++ map key_comp()用法及代码示例
- C++ map end()用法及代码示例
- C++ map value_comp()用法及代码示例
- C++ map swap()用法及代码示例
- C++ map find()用法及代码示例
- C++ map upper_bound()用法及代码示例
- C++ map cbegin()用法及代码示例
- C++ map rend()用法及代码示例
- C++ map get_allocator用法及代码示例
- C++ map emplace()用法及代码示例
- C++ map crbegin()用法及代码示例
- C++ map cend()用法及代码示例
- C++ map erase()用法及代码示例
- C++ map crbegin()、crend()用法及代码示例
- C++ map emplace_hint()用法及代码示例
注:本文由纯净天空筛选整理自 C++ map at() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。