using 關鍵字的聯絡和 map基本操作is_same型別比對
//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;
}