是否有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/

10-11 22:54
查看更多