大小在运行时确定的静态数组的向量
Vector of static arrays with size determined at run-time
我希望我的类的一个成员是std:array
的向量,但我希望数组大小由类的用户传入的变量确定。这可能吗?我尝试使用初始值设定项列表执行此操作,但收到非常明显的错误消息:
csvParser.cpp:18:35: error: invalid use of non-static data member ‘Parser::featureCount’ std::vector<std::array<lDouble, featureCount> > data;
这是我的尝试:
#include <vector>
#include <array>
typedef long double lDouble;
class Parser {
const size_t featureCount;
std::vector<std::array<lDouble, featureCount> > data;
public:
Parser(size_t numFeatures) : featureCount(numFeatures) {}
};
注意:如果可能的话,我希望类的用户能够传入值以确定数组的大小,但我的尝试并不表示必须如何完成任何事情,我愿意接受任何建议。
std::array 是使用 C 样式数组实现的。这就是为什么您无法在运行时确定大小的原因。如果需要在运行时更改大小的数组,请使用 std::vector 或使用以下方法。
class Parser
{
private:
size_t size;
std::vector<lDouble*> data;
public:
Parser(const size_t& size)
: size(size)
{
lDouble* arr = new lDouble[size];
data.push_back(arr);
}
};
相关文章:
- C++17中函数模板中的静态数组初始化(MSVC 2019)
- 静态数组的自由动态数组
- 如何在C++中删除静态数组?
- 为什么 &a 和 c++ 中的静态数组相同?
- 为什么静态数组成员变量在调用对象的实例后不显示任何内容?
- C++ 返回指向函数内定义的静态数组的指针是否有效?
- 将在堆栈上声明的元素添加到静态数组
- const_cast静态数组以添加恒常性
- 动态分配的数组和静态数组之间的区别
- C++编译时使用 constexpr 字符数组指针分配静态数组?
- 我可以使用 constexpr 函数声明一个静态数组吗?
- 使用 lambda 初始化静态数组
- 为什么从函数返回数组时需要将数组声明为静态数组.(C++)
- 根据模板值确定的静态数组大小
- 如何使用 PHP-CPP 在 PHP 类中添加静态数组
- 包含不同大小静态数组的类的多个实例
- 从我的对象返回静态数组
- 如何避免在类中显式指定静态数组的大小
- 编译类型的时静态数组
- 来自函数参数的 C++ 静态数组声明