//using 关键字的联系和 map基本操作
#include<iostream>
#include<type_traits>
#include<map>
#include<string>
using namespace std;
//1.using 关键字
//在C++11中,不仅可以使用typedef定义别名,还可以使用using定义别名,而且从语言能力上讲using比typedef更灵活。例如:
using uint = unsigned int;
typedef unsigned int UINT;
using sint = int;
//使用using定义模板的别名,例如:
template<typename T> using MapString = std::map<T, string>;
int main(int argc, char*argv[])
{
//C++11中模板类is_same可以判断两个类型是否一致。例如:is_same<uint, UINT>::value
if (is_same<unsigned int, uint>::value) {
cout << "is_same<unsigned int, uint>::value 结果是true" << endl;
}
else {
cout << "is_same<unsigned int, uint>::value 结果是false" << endl;
}
if (is_same<double, uint>::value) {
cout << "is_same<double, uint>::value 结果是true" << endl;
}
else {
cout << "is_same<double, uint>::value 结果是false" << endl;
}
MapString<int> key_val;
key_val[1] = "A";
key_val[2] = "B";
key_val[3] = "C";
key_val.insert(std::pair<int, string>(4, "D"));
key_val.insert(std::pair<int, string>(5, "E"));
key_val.insert(std::pair<int, string>(6, "F"));
key_val.insert(std::pair<char, string>(7, "G"));
for (MapString<int>::iterator it = key_val.begin(); it != key_val.end(); it++)
{
cout << (*it).first <<"::"<<(*it).second<< endl;
}
MapString<int>::iterator it = key_val.find(1);
cout << (*it).first << "::" << (*it).second << endl;
std::cin.get();
return 0;
}