C++程序 寻找给定迭代器类型
给定一个使用迭代器的程序,任务是找到使用的迭代器类型。
例如:
输入: vector.begin()
输出: 随机访问迭代器
输入: list.begin()
输出: 双向迭代器
C++标准库中存在五种类型的迭代器,如下所述:
- C++中的正向迭代器
- C++中的双向迭代器
- C++中的输入迭代器
- C++中的输出迭代器
- C++中的随机访问迭代器
方法:
- 可以使用 typeid 检查迭代器类型。 typeid是C++语言运算符,它在运行时返回类型标识信息。它基本上返回一个type_info对象,它可以与其他type_info对象进行比较。
- 与此同时使用 迭代器traits 。 traits类定义迭代器的属性。标准算法通过使用相应iterator_traits实例的成员确定传递给它们和它们所代表的范围的某些迭代器的属性。
- 还传递了 迭代器类别 ,它定义了迭代器所属的迭代器类别。共有五种标记类型,即:输入迭代器标记、输出迭代器标记、前向迭代器标记、双向迭代器标记、随机访问迭代器标记。
- typename 与之配合使用,在实例化期间为迭代器提供类型。
- 现在,如果输入迭代器的迭代器类别与现有迭代器类别相匹配,则显示结果。
时间复杂度: 找到迭代器类型的时间复杂度为O(1)