是否有用于保存具有恒定大小的向量的 C++ 标准类型?例如,所有元素类型都相同的元组之类的东西,所以我只需提供大小作为模板参数?
我希望具有与使用时相同/相似的行为std::vector
,但该类型应该与原始数组一样紧凑和高效(因此没有动态分配,没有运行时大小信息等)
我更喜欢C++03 兼容的解决方案,所以重用 astd::tuple
不是我想要的。
下面的课程做我想要的吗?
template<typename T, int N>
struct vec
{
T component[N];
// (+ some logic and accessors like operator[]...)
};
// concrete example:
vec<int,3> myVector;
它真的与仅仅说T myVector[N]
(具体例子int myVector[3]
)不同吗?因为这就是我目前正在做的事情,但我遇到了几个问题,因为原始数组是“只是指针”(+大小信息),不能用作返回值,也不能真正按值传递(没有发生深拷贝)。