如何遍历没有开始/结束的容器?

时间:2019-06-18 14:28:52

标签: c++ boost iterator c++98 gcc4.4

(C ++ 98,gcc4.4.7) 假设我有一个与数据库连接的容器,该容器本身不提供迭代器,而仅提供索引的getter和size(),例如:

template<typename T>
class DbVector
{
public:
  const T& getValue(const size_t) const;
  size_t size() const;
};

我希望能够在基于范围的算法中使用它。这听起来像是一个普遍的问题。 Boost是否为此提供解决方案?

我已经研究了Boost.Iterator和Boost.Range,但是没有成功。我什至不知道应该如何制定我的Google查询来查找有用的东西。

我认为也许有一个图书馆,可以允许这样的事情:

typedef Iterable<DbVector<int>,
                 &DbVector<int>::getValue,
                 &DbVector<int>::size>
        IterableDbVectorInt;

const DbVector<int>& dbVector = getDbVector();
return boost::any_of_equal(IterableDbVectorInt(dbVector), someValue);

我知道我可以从头开始编写它,但是我真的在努力不重新发明轮子。

是否有任何基于助推的创意?

0 个答案:

没有答案