C++容器的异构列表
Heterogeneous list of containers in C++
我有一个项目,在这个项目中,我必须制作一个 n 个容器的异构列表,其中将给出n
。容器可以是列表、队列或堆栈,每个容器都必须实现一个bool member(T const& x)
方法,该方法检查容器中是否存在对象。我还必须为异构列表制作一个迭代器,它可以遍历所有容器的每个元素(不同容器中的所有元素都是同一类型)。
我的想法是拥有一个包含 member
方法和 3 个新类的接口,每个类都继承自接口和 stl 容器(我知道这是一个坏主意,但我不想编写自己的列表、队列和堆栈类)。至于异构列表,我想到有一个带有数据成员的类,该成员是接口类的列表或向量。
我不知道该怎么做的事情是:如何从泛型类型 T 的 stl 容器中完全继承。 不知道这样的事情是否可以工作:
template <typename T>
class MyList : public list<T>, CommonInterface
我遇到的最大问题是如何为异构列表制作迭代器,以便它可以遍历容器的所有元素。我的想法是将所有元素转移到一个矢量对象,并使用它的迭代器(我猜是一种包装)。
欢迎就此问题提出任何想法和解决方案。如果这个问题有什么不清楚的地方,我会尽快澄清。
这比你想象的要复杂得多。主要原因是C++是静态类型的,因此不适用于此方法。但一种解决方案是使用静态容器的集合和一个unordered_map,以便在遍历特定类型化容器时能够选择正确的容器。
请参阅此存储库和示例 https://github.com/hosseinmoein/DataFrame
相关文章:
- 在C++中,如何创建包含可变模板对象的异构向量?
- 创建异构顶点数据数组的可移植方法
- std::variant vs指向C++中异构容器基类的指针
- C++中的集合(异构类型的数组)
- 从异构列表中提取数据
- Push_back一组(异构)向量的实现
- 使用 std::vector<char> 作为异构记录的存储是否安全?
- 是否可以使用 std::vector<std::any> vec;这将导致异构数据类型
- 异构容器查找 C++98
- 编译时排序的异构元组
- 异构初始化列表
- 派生实例不是指针时的基类的异构容器
- 顺序异构函数执行器
- 我们可以使用异构查找比较器对 STL 关联容器执行"partial-match"搜索吗?
- 异构作业处理器的并行化
- 如何解析没有前置标记的异构列表
- C++异构类型迭代器的迭代器
- 异构列表和DMA
- C++容器的异构列表
- 异构列表和动态数组分配