#include <iostream>
#include <string>
#include <vector>
#include <typeinfo>
#include <functional>
int main(int argc, char *argv[])
{
//name
std::cout<<typeid(int).name()<<std::endl;
std::cout<<typeid(float).name()<<std::endl;
std::cout<<typeid(double).name()<<std::endl;
std::string name = "Lin Chen";
std::cout<<typeid(name).name()<<std::endl;
std::vector<int> intContainer;
std::vector<std::string> stringContainer;
std::cout<<typeid(intContainer).name()<<std::endl;
std::cout<<typeid(stringContainer).name()<<std::endl;
//hash_code, returns the same value for any two type_info objects that compare equal
int n;
std::cout<<typeid(int).hash_code()<<std::endl;
std::cout<<typeid(n).hash_code()<<std::endl;
return 0;
}