当前位置:  开发笔记 > 编程语言 > 正文

如何在不暴露所用容器的情况下暴露迭代器?

如何解决《如何在不暴露所用容器的情况下暴露迭代器?》经验,为你挑选了1个好方法。

我一直在使用C#一段时间,回到C++是一件令人头疼的问题.我试图从C#获得我的一些实践与C++,但我发现了一些阻力,我很乐意接受你的帮助.

我想为这样的类公开一个迭代器:

template 
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 mHiddenContainerImpl;
};

我在尝试一些不是问题的东西吗?我应该只是输入std :: vector :: iterator吗?我希望只依赖于迭代器,而不是实现容器......



1> jonner..:

您可能会发现以下文章很有趣,因为它准确地解决了您发布的问题:关于面向对象和C++中的泛型编程之间的张力以及什么类型的擦除可以做到这一点

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有