1. 程式人生 > >using 關鍵字的聯絡和 map基本操作is_same型別比對

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;
}