可能重复:
typeid() 在 g++ 中返回额外字符
我从 cplusplus.com了解到typeid函数可以在 C++ 中获取变量的类型信息。但结果在我的机器上有点奇怪。
例如:
#include <iostream>
#include <typeinfo>
#include <vector>
using namespace std;
class Test
{
};
int main()
{
vector<int> v;
vector<vector<int> > v2;
Test t;
cout<<"typeid for class Test: "<<typeid(t).name()<<endl;
cout<<"typeid for vector<int>: "<<typeid(v).name()<<endl;
cout<<"typeid for vector<vector<<int> >: "<<typeid(v2).name()<<endl;
return 0;
}
运行此代码后,我的机器中的输出为:
typeid for class Test: 4Test
typeid for vector<int>: St6vectorIiSaIiEE
typeid for vector<vector<<int> >: St6vectorIS_IiSaIiEESaIS1_EE
我对“测试”类之前的“4”和向量周围的奇怪字母感到很困惑。谁能给我一些解释?谢谢!
我的操作系统是 Fefora 17, g++ (GCC) 4.7.0 20120507 (Red Hat 4.7.0-5)