目的
- 定义别名
- 声明命名空间
表示方式
//声明命名空间
using namespace std;
//using 新的类型 = 旧的类型; 可读性与typedef相差无几
using ll = long long;
//using 定义函数指针func_ptr,凸显using的可读性
using func_ptr = int(*)(int, double);//返回值是int,两个参数int和double
//模板的别名
template<typename T>
using mymap = map<int, T>;
细节
- using与typedef的区别
- using比typedef可读性更强,尤其是对于函数指针的定义
- using支持模板的别名
- 但在普通类型定义上,二者是没有区别的
建议
使用using替代typedef
举例
#include <bits/stdc++.h>
using namespace std;
//using 新的类型 = 旧的类型; 可读性与typedef相差无几
using ll = long long;
//using 定义函数指针func_ptr,凸显using的可读性
using func_ptr = int(*)(int, double);//返回值是int,两个参数int和double
//模板的别名
template<typename T>
using mymap = map<int, T>;
int main(){
ll a, b;
a = 100;
cout << a << endl;
cout << is_same<ll, long long>::value << endl;//判断类型是否一致
mymap<string> mp;
mp.insert(make_pair(1, "llx"));
mp.insert(make_pair(2, "szy"));
mp.insert(make_pair(3, "wd"));
mymap<double> mp2;
mp2.insert(make_pair(1, 2.4));
mp2.insert(make_pair(2, 3.14));
system("pause");
return 0;
}
参考学习
https://www.bilibili.com/video/BV1bX4y1G7ks