typedef
功能:
-
定义别名,用于简化复杂的变量类型嵌套,增加代码可读性,便于优化维护。
typedef std::vector<std::set<std::unordered_map<size_t, pair<int, int >>>> v_s_mp_int2_ii;
using
功能:
-
引入命名空间
using namespace std;
-
定义别名,类似于
typedef
using v_s_mp_int2_ii = std::vector<std::set<std::unordered_map<size_t, pair<int, int >>>> ;
相对于
typedef
,语法上更能契合人类从左到右的阅读顺序,更加容易理解。
区别
// error: a typedef cannot be a template
template <class _T>
typedef AA<_T> aclass;
typedef
不能够直接给模板类进行取别名。
template <class _T>
using aclass = AA<_T>;
则编译通过,并且正确执行。