如何在自己的函数/方法中接收迭代器对?
void moveMessages(const std::InputIterator<uint64_t> begin, const std::InputIterator<uint64_t> end, uint32_t to_folder_id, int32_t from_folder=-1);
我试图这样,bug gcc不喜欢。。可能我错过了一些重要的事情。
我在某处找到模板版本来执行此操作。有没有模板就可以做到吗?可能它的参数接收“输入迭代器基类”作为参数,但是如何做到这一点呢?
最佳答案
我在某处找到模板版本来执行此操作。
是的,就是这样。
template <typename InputIterator>
void moveMessages(InputIterator begin, InputIterator end, uint32_t to_folder_id, int32_t from_folder=-1);
有没有模板就可以做到吗?
并不是的。不同种类的迭代器是不同的,不相关的类型,因此您需要一个模板来多态处理它们。
可能它的参数接收“输入迭代器基类”作为参数,但是如何做到这一点呢?
没有基类。实际上,迭代器不一定完全是类类型:指针可以用作迭代器。
关于c++ - 如何在方法中接收迭代器对?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18529258/