gpt4 book ai didi

c++ - 如何在不暴露使用的容器的情况下暴露迭代器?

转载 作者:IT老高 更新时间:2023-10-28 13:01:06 25 4
gpt4 key购买 nike

我使用 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 吗?我希望只依赖于迭代器,而不是实现容器......

最佳答案

您可能会发现以下文章很有趣,因为它完全解决了您发布的问题:On the Tension Between Object-Oriented and Generic Programming in C++ and What Type Erasure Can Do About It

关于c++ - 如何在不暴露使用的容器的情况下暴露迭代器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/156936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com