gpt4 book ai didi

c++11 在类定义中为可变大小的 std::array 创建数据成员

转载 作者:搜寻专家 更新时间:2023-10-31 01:10:09 25 4
gpt4 key购买 nike

我对 std::array 和将它传递给不同的类感到有点困惑。我想定义一个在其构造函数中接受 std::array 的类,并使用它来设置成员变量。但是,由于数组的大小可能是可变的,我不确定这如何转化为类和成员变量声明。例如:

// array_param.h
#include <array>

class ArrayParam
{
public:
//constructor?
ArrayParam(std::array<long, ?>& entries);

// member variable?
std::array<long, ?> param_entries;
};

...和...

// array_param.cpp
#include "array_param.h"

ArrayParam::ArrayParam(std::array<long, ?>& entries)
{
param_entries = entries;
}

这样做的动机是,在我的主程序中,例如,我有两个或多个定义明确且大小已知的数组。我想对这些不同大小的数组执行相同的操作,因此需要这样一个类来处理任何大小的数组的这些共享操作。

非常感谢任何帮助,非常感谢!

最佳答案

std::array 的大小必须在编译时已知。由于您提到您的数组具有已知的固定大小,因此您可以将数组大小作为模板参数。

// array_param.h
#include <array>
#include <cstdlib>

template<std::size_t N>
class ArrayParam
{
public:
//constructor?
ArrayParam(std::array<long, N>& entries);

// member variable?
std::array<long, N> param_entries;
};

关于c++11 在类定义中为可变大小的 std::array 创建数据成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16221456/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com