STL:vector中如何使用at()来避免程序报错
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> Vec;
for (int i = 0; i < 30; i++)
{
Vec.push_back(i);
//cout << Vec.size() << endl;
//cout << Vec.capacity() << endl;
//cout << endl;
}
//使用at()处理越界的问题
for (int i = 0; i < Vec.size()+2; i++)
{
try
{
//👇在这语境中不会导致崩溃,而是发现异常
Vec.at(i);
//👇这会导致崩溃
//Vec[i];
}
catch (const std::out_of_range& erro)
{
cout << "越界访问" << endl;
cout << erro.what() << endl;
}
}
}