枚举器还是迭代器?

问题描述

| 我对Windows非常陌生。在使用WMI时,我发现没有使用术语“ 0”,而是将枚举或枚举器用于相同的目的。他们真的有迭代器吗?或用enum或enum代替术语Iterator,EnumVariant等....。或者我缺少关于Iterator和Enumurator的内容。据我所知,传统上,枚举与迭代器不相同。我错了吗 ?     

解决方法

        枚举既是一个事物(可能值的列表)又是一个动作(逐步浏览列表中的每个项目)。 Windows API使用这两个术语,取决于上下文以区分它们。 通常,函数和接口名称中带有\“ Enum \”表示枚举,例如。 EnumWindows表示枚举窗口,而IEnumUnknown(COM接口)表示枚举未知的[对象]。 Windows API没有单一的枚举方法。 EnumWindows在内部实现循环,并通过处理程序函数反复调用您,而IEnumUnknown要求调用者使用Next()函数编写循环。 因此,在Windows上,枚举器是解决遍历元素列表问题的广泛解决方案。 迭代器是枚举器的C ++标准库概念。为避免与现有的枚举语言概念混淆,可能故意选择了“迭代器”而不是“枚举器”。 与Windows不同,C ++标准库迭代器的概念定义非常明确:所有迭代器都像指针一样工作;所有迭代器都需要调用者编写循环,等等。C ++标准库中有几类迭代器,它们允许线性,反向或随机访问元素。     ,        术语枚举器通常用作迭代器的同义词。 枚举或枚举完全是另外一回事。