【发布时间】:2013-05-10 12:35:09
【问题描述】:
我有示例大整数类。 它包含组成大整数的动态数字数组。 我想使用 2 个迭代器(开始和结束)构造此类的对象,以便可以从 std::vector 或 std::list 传递数字。
一些伪代码说明了我的想法:
BigInteger(std::iterator begin, std::iterator end);
...
用法:
std::vector<int> v;
// fill vector with digits
...
BigInteger b(v.begin(), v.end());
问题是:如何正确声明这样的构造函数? 还有可能吗?
谢谢!
【问题讨论】:
-
vector的做法相同:en.cppreference.com/w/cpp/container/vector/vector -
那么,有没有办法使用一些“通用迭代器类型”?
-
没有“通用迭代器类型”。考虑
int*是一个有效的迭代器。 -
@DaddyM 没有简单的方法,因为没有通用的迭代器类型。你必须创建一个。这可能不值得麻烦。
-
我认为
v是一个 int 或类似的向量。
标签: c++ stl iterator construction