📅  最后修改于: 2023-12-03 15:14:04.698000             🧑  作者: Mango
在C++中,可以使用typeid
关键字来查找给定迭代器的类型。typeid
返回一个type_info
对象,它包含了有关对象的类型信息。
以下是一个示例程序,演示了如何查找给定迭代器的类型:
#include <iostream>
#include <typeinfo>
#include <vector>
int main() {
std::vector<int> myVector;
// 获取迭代器的类型
auto it = myVector.begin();
const std::type_info& type = typeid(it);
// 打印类型名
std::cout << "迭代器类型: " << type.name() << std::endl;
return 0;
}
在上面的示例中,我们创建了一个std::vector<int>
容器,并获取了其开始位置的迭代器。然后,使用typeid
关键字查找了该迭代器的类型,并将结果存储在type
变量中。
最后,通过使用type.name()
来获取类型的名称,并将其打印到控制台上。
注意,type.name()
返回的类型名称可能因编译器而异。某些编译器可能会返回带有特殊字符的字符串,而另一些编译器可能会返回更具可读性的名称。
为了使用以上示例代码,您需要在程序中包含<typeinfo>
头文件,并且您的编译器必须支持RTTI(Run-time Type Information)。请确保在编译和运行程序时启用了RTTI功能。
这是一个使用typeid
查找迭代器类型的基本示例,您可以根据自己的需要进行扩展和使用。