【发布时间】:2012-07-30 11:54:04
【问题描述】:
我在 C++ 中创建了一个容器类,并且我有一个来自迭代器的构造函数,因此我可以编写 MyContainer<double> x(v.begin(), v.end()),其中 v 是 std::vector<double>。我希望能够对 c-array 做同样的事情,但是:
double array[3] = {1., 2. , 3.};
MyContainer<double> x(array, array+3); // Doesn't work : no matching function for call to ‘MyContainer<double>::MyContainer(double [3], double*)’
MyContainer<double> x(array+0, array+3); // Work
问题的根源是什么,如何解决?
非常感谢。
【问题讨论】:
-
愿意分享您的构造函数的签名吗?
-
请显示所涉及的(模板?)构造函数的声明。
-
猜猜这是
MyContainer<double>::MyContainer(double*, double*) -
有趣的事实:
+ array(一元加号运算符)也可以。
标签: c++ arrays pointers constructor