gpt4 book ai didi

存储在 std::map 中的 C++ 基本迭代器

转载 作者:行者123 更新时间:2023-11-30 04:19:18 32 4
gpt4 key购买 nike

我想通过一个简单的代码示例提出一些想法:

class Base{

public:
void doSomeNastyThings(int param)
{
IteratorInterface *iter_face = iterators[param];
for(auto it = iter_face->begin(); it != iter_face->end(); it++)
{
//do another nasty things
}
}

protected:
std::map<int, IteratorInterface*> iterators;
};

而且我希望从派生类填充一个迭代器映射....但是我怎样才能创建这样一个 STL 风格的 IteratorInterface 呢?所有迭代器都会为我提供对同一类型的访问(让我称之为“T”),但它们可以有不同的类型:

std::map<T>::iterator, std::vector<T>::iterator, foo<T>::iterator.

最佳答案

一种方法是创建从 IteratorInterface 派生的模板类,它将使用迭代器做一些令人讨厌的事情,实现 IteratorInterface 并为您可能希望它使用的每个迭代器提供实现。但首先你应该阅读 this发布并可能重新考虑整个想法。

关于存储在 std::map 中的 C++ 基本迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15957844/

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