29.STL序列化容器详解

1.array

有了前面一章的基础,我们就可以正式来学习使用各个容器了,首先是序列式容器。

注意这些容器会用到最基础的数据结构,如果你对此还不慎了解,那么可以先看看这篇文章:数据结构与算法

这个容器可能我们平时用的较少,它是一种定长的容器,看名字就知道,基本和我们平时使用的数组没有什么区别。

声明的方式为:

#include<array>
#include<iostream>
using namespace std;
int main() {
	array<int, 100> arr;
}

其模板参数, 第一个为要存储的类型,第二个为大小。

其特点是一旦声明了,这个数组的大小就不可更改了。

你可以像普通数组那样赋值与获取值:

	array<int, 100> arr;
	arr[0] = 1;
	cout << arr[0]<<endl;

但通过下标获取值容易出现访问越界,比如这里为100个元素,范围为0-99,你却访问下标为100的元素,就超界了,有时就会出现获取的值不对,或者程序直接崩溃。

为了解决这个问题,我们可以通过它提供的函数来获取值:

	array<int, 100> arr;
	try
	{
		cout<<arr.at(100);
	}
	catch (const std::exception& e)
	{
		cout << e.what();
	}

然后我们在最外层套一个异常处理,如果越界了,它就会抛出异常,然后我们这个try catch块就会捕获到。

不熟悉异常用法的可以参考文章:异常处理

作者:余识
全部文章:0
会员文章:0
总阅读量:0
c/c++pythonrustJavaScriptwindowslinux