gpt4 book ai didi

c++ - 如何编写一个符合 STL 的容器,但它的大小未知?

转载 作者:搜寻专家 更新时间:2023-10-31 02:13:44 24 4
gpt4 key购买 nike

根据 cppreference.com :

Any STL-compliant container must provide a member function size().

现在我要写一个符合STL的容器MyContainerMyContainer::iteratorstd::input_iterator的一种,即也就是说,MyContainer 只能遍历一次。例如,我使用 MyContainer 来存储 SQL 查询的结果,并使用它的 iterator 一条一条地提取记录。

我遇到这样一个问题:MyContainer可以提供begin()end()来遍历它的值,但是不能pre -确定其值的总大小。

遇到这种情况怎么办?

最佳答案

C++ 标准中的容器“要求”有些困惑。虽然对迭代器的要求是真实的要求(例如,标准算法期望迭代器具有要求定义的某些属性),但标准库中没有任何内容依赖于满足“容器要求”的任何容器。事实上,这些要求是关于标准中定义的特定容器的设计声明,而不是不满足它们就会破坏代码的要求。

将容器视为一种在一系列值上提供迭代器的方式。这很重要,但它不是创建有用迭代器的唯一方法。例如,输入流不是容器(通常没有确定其大小的方法)但它们确实提供可以传递给标准算法的迭代器(以 istream_iterator 的形式) .这没有错。就去做吧。

关于c++ - 如何编写一个符合 STL 的容器,但它的大小未知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40907713/

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