Alf*_*ong 0 c++ unordered-map g++ linked-list
我试过这段代码
#include <iostream>
#include <utility>
#include <vector>
#include <unordered_map>
#include <stdexcept>
using namespace std;
int main() {
unordered_map<int,int> parent_map;
try {
int a = parent_map[0];
cout<<a<<endl;
} catch (out_of_range oe) {
cout<<"out of range"<<endl;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我认为应该抓住超出范围的例外.但是,输出是
0
Run Code Online (Sandbox Code Playgroud)
我很迷惑.我记得我之前有过这个工作.
operator[]
不抛出,你想尝试std :: unordered_map :: at
int a = parent_map.at(0);
Run Code Online (Sandbox Code Playgroud)
也operator[]
将如果密钥没有发现插入的元素.
并且您希望通过引用捕获异常
catch (const out_of_range &oe) {
cout<<"out of range: " << oe.what() <<endl;
}
Run Code Online (Sandbox Code Playgroud)