【发布时间】:2018-11-26 19:05:04
【问题描述】:
如何添加功能来初始化这个 2dvector 类:-
template <typename T>
class uvector2d
{
public:
uvector2d(size_t xAxis=0, size_t yAxis=0, T const &
t=T()) : xAxis(xAxis), yAxis(yAxis), data(xAxis*yAxis, t)
{}
T & operator()(size_t xNum, size_t yNum)
{return data[xNum*yAxis+yNum];}
T const & operator()(size_t xNum, size_t yNum)
const {return data[xNum*yAxis+yNum];}
private:
size_t xAxis,yAxis;
uvector<T> data;
};
使用统一初始化如下图:-
vector<vector<int> > vect{ { 1, 2, 3 },
{ 4, 5, 6 },
{ 7, 8, 9 } };
我目前正在使用类似的东西: uvector2dvect(3,3); vect(1,1)=10864;
【问题讨论】:
-
定义一个具有
std::initializer_list<std::initializer_list<T>>类型参数的构造函数,并将其元素复制到data中。 -
@DanielLangr 答案部分如下 ;)
-
@NathanOliver 我认为答案应该更加详细,并解释为什么某些东西可以作为解决方案。我现在没有时间写它,所以我只是快速提示一下作为评论:)。
-
@DanielLangr 嗨,我创建了这个 cuvector2d(initializer_list
> values); -
但无法复制到数据。你能输入代码吗,真的很有帮助吗
标签: c++ c++11 programming-languages 2d-vector