请考虑以下来源:
void ex8()
{
vector<int> v;
try
{
v.push_back(3);
int i = v[1];
}
catch (exception& e)
{
cout << "pas bon !";
}
}
执行时,Release中不会引发任何异常。在“调试”中,出现“调试断言失败”对话框。 我在Win 10上使用Visual Studio。
向量实现不应该抛出out_of_range异常吗?
谢谢。
答案 0 :(得分:0)
仅举一个[]
和at()
#include <iostream>
#include <vector>
int main()
{
std::vector<int> v;
v.push_back(123);
v.resize(0);
try {
std::cout << "at() ";
std::cout << v.at(0) << std::endl;
}
catch (std::exception e) {
std::cout << e.what() << std::endl;
}
std::cout << "[] " << v[0] << std::endl; // all can append
return 0;
}
对我来说,死刑是
at() std::exception
[] 123