常数大小的向量类
Constant-sized vector class?
是否有一个c++标准类型来保存具有恒定大小的向量?例如,像元组这样的东西,所有元素类型都是相同的,所以我只需要提供大小作为模板参数?
我希望具有与使用std::vector
时相同/类似的行为,但类型应该像原始数组一样紧凑和高效(因此没有动态分配,没有运行时大小信息等)
我更喜欢 c++ 03兼容的解决方案,所以重用std::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]
)有区别吗?因为这就是我目前正在做的事情,但我遇到了一些问题,因为原始数组"只是指针"(+大小信息),不能用作返回值,也不能真正通过值传递(没有深度复制发生)。
c++ 11有std::array
;这和你写的基本一样。
对于c++ 03,使用boost::array
, std::array
基本兼容
相关文章:
- 添加存储在向量中的大整数的函数出现问题
- 以C++递归方式查找向量中的最大值
- C++ - 如何在结构向量中找到结构体一个成员的最大值?
- 在二维向量或数组中可以存储的最大元素数是多少?
- 特征稀疏向量:求最大系数
- 我的 If Else 语句无法在向量 (C++) 中提供最大值
- 尝试通过memcpy复制大尺寸浮点向量时的分割错误
- 如何知道向量的实际最大大小?(不使用 std::vector::max_size)
- 大向量和内存守恒c++
- 如何修复错误:使用向量查找最小值和最大值进行合并排序
- 如何实现使用 gcc-4.4 编译的大向量初始化?
- 在每个向量<向量中查找最小/最大 x,y<Point>>
- 在 C++ 中,仅使用递归来提取向量中的最大元素
- 如何对字符向量执行大整数乘法
- 调整OpenCV Mat向量向量的大小时出乎意料的结果
- 如何正确地将向量的大小传递给需要 int 的函数
- 有没有一种方法可以在向量常数时间的中间插入一些东西
- 如何在使用向量调整大小时调用非默认构造函数
- 用C++中的向量计算大整数
- 关于向量保留大内存的问题