我已经使用 C# 有一段时间了,回到 C++ 是一件很头疼的事情。我正在尝试将我的一些实践从 C# 带到 C++,但我发现了一些阻力,我很乐意接受你的帮助。
我想为这样的类公开一个迭代器:
template <class T>
class MyContainer
{
public:
// Here is the problem:
// typedef for MyIterator without exposing std::vector publicly?
MyIterator Begin() { return mHiddenContainerImpl.begin(); }
MyIterator End() { return mHiddenContainerImpl.end(); }
private:
std::vector<T> mHiddenContainerImpl;
};
我在尝试一些不成问题的事情吗?我应该只是 typedef std::vector< T >::iterator 吗?我希望只依赖于迭代器,而不是实现容器......