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

猜你喜欢

转载自blog.csdn.net/weixin_42204566/article/details/84651093
今日推荐