我有一个框架,它需要作为输入的迭代器。 但有时候,我有一个单独的元素,所以构建一个容器似乎太多了。
GIT_TRACE
我可以创建一种特殊类型的迭代器,但是标准库或boost中是否存在类似的东西?
答案 0 :(得分:4)
单个元素可以被认为是一个大小为1的数组。因此,如果我们使用它,那么指向该对象的指针将是指向数组开头的指针(迭代器),并且指向一个过去然后结束数组的指针将只是指针递增一次。所以你可以做的是使用
call(&object, &object + 1)
现在你只处理单个对象。
答案 1 :(得分:1)
虽然已有答案,但我建议采用另一种方法:只需在调用中添加另一个重载,它接受一个元素本身,并使你的迭代器版本在循环中调用单个元素函数。
这将使代码更直接,并且在非内联案例中具有更好的优化代码的额外好处。