0
我有一个遍历std :: shared_ptr的迭代器。所以operator ++将内部存储的共享指针指向下一个项目。std :: shared_ptr迭代器
template<class IT>
class MyIterator
{
public:
...
MyIterator& operator++()
{
_i = ... // Call factory
return *this;
}
private:
std::shared_ptr<IT> _i;
};
我该如何实现运算符*()和运算符 - >()运算符?
如何测试迭代器是否指向NULL,即内部共享指针是否指向NULL。
为什么你的迭代测试,如果shared_ptr的是NULL?其他迭代器不这样做。 – robert 2012-07-06 12:04:06
你说得对。我在这里感到困惑。相反,我应该这样做:if(i == end())来测试它是否为null。 – Baz 2012-07-06 12:20:59