在学习中,一直困惑例如for(auto i:str)这种类型,在循环体内,i是字符型char还是字符串型string。这里用到了typeid函数,该函数可以判断变量类型。需要头文件#include<typeinfo>.使用方法为:
if(typeid(int)==typeid(i))
{
cout<<"is int"<<endl;
}
如果i为int型,则输出:is int。
当 a为int型时输出is int;
下面为实验代码:
#include<iostream>
#include<typeinfo>
using namespace std;
int main()
{
string str;
getline(cin,str);
for(auto i:str)
{ if(typeid(char)==typeid(i))
{
cout<<"char"<<endl;
}
if(typeid(str)==typeid(i))
{cout<<"str"<<endl;
}
}}
最后得出结果在循环体内i的类型为char型。