是否有C++标准类型用于保存大小恒定的 vector ?例如,类似元组且所有元素类型都相同的东西,因此我只需要提供大小作为模板参数?
我想拥有与使用std::vector
相同/相似的行为,但是类型应该像原始数组一样紧凑和高效(因此,没有动态分配,没有运行时大小信息,等等)。
我更喜欢与C++ 03兼容的解决方案,所以重用std::tuple
不是我想要的。
以下类(class)能满足我的要求吗?
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]
)真的有区别吗?因为那是我目前正在做的事情,但是我遇到了一些问题,因为原始数组是“只是指针”(+大小信息),既不能用作返回值,也不能真正通过值传递(没有深度复制发生)。 最佳答案
C++ 11具有std::array
;基本上和你写的一样
对于C++ 03,请使用与boost::array
基本兼容的std::array
。
关于c++ - 恒定大小的 vector 类?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14296379/