【发布时间】:2010-09-14 11:46:21
【问题描述】:
我使用 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::iterator 吗?我希望只依赖于迭代器,而不是实现容器......
【问题讨论】:
-
另见question
标签: c++ stl iterator encapsulation