我的任务非常繁重,而且我还没有找到任何解决方案。所以,这里是描述: - 任务是评估多个单维数组,其数量可以变化 - 好消息是可以指定数组类型
理想的做法: - 使用构造函数创建一个类,该构造函数接受可变数量的数组 - 这些数组也应该用作属性(私有成员),因此可以在对象的生命周期中对它们进行多次操作
我是如何尝试的: - 具有可变数量的参数的构造函数成员函数(我不知道为什么这不起作用) - 带向量的构造函数应该是更好的方法,但是如何存储类型的数组是在单独的数组中指定的,这意味着你不能提前为某些数组预期某些数据类型 - 我尝试使用预处理器将可变数量的数组声明为私有成员,但似乎循环和其他代码在私有内部不能很好地工作:声明
任何人的想法?
答案 0 :(得分:2)
接受可变数量的数组的构造函数:
vector< vector<T> > ?
内部向量可以是不同的大小,但必须是相同的类型。
具有可变数量参数的构造函数成员函数
您可以使用具有可变数量参数的函数来创建类,查看boost :: bind的工作原理,这需要许多不同的参数列表。
boost mpl可以回答你想要做的事情,虽然目前还不清楚。
答案 1 :(得分:0)
为什么不使用简单的参数化类?
如果你的编译器支持C ++ 0x,你也可以使用初始化列表用于具有可变数量参数的构造函数。
template<class ArrayType>
class ArrayContainer
{
std::vector<ArrayType> m_arrays;
public:
ArrayContainer(std::initializer_list<ArrayType> arrays)
{
m_arrays.reserve(arrays.size());
std::copy(arrays.begin(), arrays.end(), m_array);
}
};
构造函数现在接受可变数量的数组。
auto container = new ArrayContainer({ a, b, c });