我有一个向量向量来建立一个整数映射,并且我很想在抛出向量时捕获超出范围的错误,方法是执行以下操作:
vector< vector<int> > agrid(sizeX, vector<int>(sizeY));
try {
agrid[-1][-1] = 5; //throws an out-of-range
}
catch (const std::out_of_range& e) {
cout << "Out of Range error.";
}
但是,我的代码似乎根本没有发现错误。它似乎仍然想运行 std::terminate。有谁知道这是怎么回事?