数组向量:处理容器内的数组
使用数组向量需要注意某些细微差别。特别是,在尝试调整数组向量的大小时可能会出现错误。为了理解这个问题并找到可行的解决方案,让我们更深入地研究细节。
背景:数组和容器
数组是保存连续内存位置的数据结构存储相同类型的元素。然而,像向量这样用于存储数据集合的容器具有更通用的用途。它们可以保存不同类型的对象,包括指针和类。
错误原因:非标量元素类型
您遇到的错误,“从 'int' 转换”请求的非标量类型“float [4]””源于数组被视为非标量类型的事实。标量类型是指整数、浮点数和字符等基本数据类型。另一方面,非标量类型包括数组、结构体和类。
正确方法:数组类模板
要解决此问题,您不能存储数组直接在向量中。相反,您可以使用数组类模板。数组类模板是定义的库,如 Boost、TR1 和 C 0x,它们提供了一种在容器内使用数组的便捷方法。
示例:使用 std::array 类模板
std::array 类模板是一个合适的选择。以下是如何使用它声明数组向量的示例:
std::vector<std::array<double, 4>> myVector;
此代码定义了数组向量。向量中的每个数组都有四个双精度浮点元素。通过使用 std::array 类模板,您可以避免与直接在向量中存储数组相关的问题。
以上是如何在 C 语言中正确存储向量内的数组?的详细内容。更多信息请关注PHP中文网其他相关文章!