如何在自己的函数/方法中接收迭代器对?

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/

10-15 00:21
查看更多