gpt4 book ai didi

c++ - 如何检查简单的 C++ 标准库迭代器是否可以被推进?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:38:17 25 4
gpt4 key购买 nike

假设我有一个封装标准容器的类:

class Stash
{
list<int> Data;

public:
list<int>::const_iterator GetAccess() const { return Data.begin(); }
};

这是强制用户以迭代器的形式读取数据的一种非常方便的方式。但是,除了将迭代器与 container.end() 进行比较之外,我找不到其他方法。所以,我想知道是否可以选择仅通过 stdlib 来完成,或者我必须自己编写迭代器类(例如,使用 can_advance 方法)。

相关问题可能是 this one ,但它会询问迭代器是否有效,而不是它是否可以前进。我找不到有关后者的任何信息。

最佳答案

你不能这样做,当一个迭代器位于它指向的序列的末尾时,它不包含信息。

通常,这可以通过提供范围(想想 std::make_pair(cont.begin(), cont.end()))或提供 begin()< 来解决end() 方法添加到您的类中,有效地使其成为一个范围。

关于c++ - 如何检查简单的 C++ 标准库迭代器是否可以被推进?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11971308/

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