gpt4 book ai didi

c++ - 有效输入迭代器的默认构造

转载 作者:可可西里 更新时间:2023-11-01 14:13:55 26 4
gpt4 key购买 nike

我正在设计一种枚举系统中所有正在运行的进程的输入迭代器类型。

这类似于我设计的用于枚举进程中模块的迭代器。模块迭代器在构造函数中接受一个“进程”对象,默认构造的迭代器被认为是尾端迭代器。

例子:

hadesmem::ModuleIterator beg(process);
hadesmem::ModuleIterator end;
assert(beg != end);

虽然我不知道如何处理进程枚举,因为没有“状态”或需要提供给迭代器的信息(一切都由迭代器使用 Windows API 在内部处理)。

例子:

// This is obviously a broken design, what is the best way to distinguish between the two?
hadesmem::ProcessIterator beg;
hadesmem::ProcessIterator end;

处理这种情况的惯用方法是什么?即,当不需要向迭代器构造函数提供任何内容时,您需要区分"new"迭代器和非末端迭代器的创建。

如果相关,我可以在此库中使用 C++11,只要它受 VC11、GCC 4.7 和 ICC 12.1 支持。

谢谢。

编辑:

澄清一下,我知道无法在我上面发布的表格中区分两者,所以我要问的更多是“设计”问题而不是其他任何问题......也许我是只是忽略了一些明显的东西(这不是第一次)。

最佳答案

您真正想要做的是创建一种 ProcessList 对象,并将迭代器基于该对象。我不想在每次递增迭代器时都枚举所有进程或其他内容。

关于c++ - 有效输入迭代器的默认构造,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11088359/

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