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;
		}
	}


}

 

posted on 2024-03-19 15:10  橙柒  阅读(81)  评论(0编辑  收藏  举报

导航