【C++新特性——using】

1typedef&using 类型定义别名

cpp 复制代码
#include<iostream>
using namespace std;

void f(int index)  //事例函数指针
{
	cout << "void f(int)->" << index << endl;

}

int main()
{
	//typedef:  旧名  新名
	typedef unsigned int x;    

	//using:    新名=旧名
	using y = unsigned int;

	//函数指针拉开二者区别
	void(*i)(int) = f;    //最原始的函数指针
	typedef void(*x2)(int);     //不熟悉typedef和函数指针的看不出来x2是别名

	using y2 = void(*)(int);    //这个就非常简单明了y2就是别名

	return 0;
}

2模板定义别名

cpp 复制代码
#include<iostream>
#include<vector>
#include<map>
using namespace std;

template<typename T = int>
//typedef vector<T> k;   //报错    typedef做不到

class base {  //正确:typedef需要一个类辅助
public:
	typedef vector<T> k;  

};


template<typename T = int>
using t = vector<T>;
int main()
{	
	t<> x = { 1,1,1,1 };
	for (auto i : x)
		cout << i << " ";

	base<>::k y = { 2,2,2,2 };

	return 0;
}

最后在强调一点:using语法和typedef一样,并不会创建出新的类型,它们只是给某些类型定义了新的别名。using相较于typedef的优势在于定义函数指针别名时看起来更加直观,并且可以给模板定义别名。

using的使用 | 爱编程的大丙

相关推荐
iAkuya11 分钟前
(leetcode)力扣100 62N皇后问题 (普通回溯(使用set存储),位运算回溯)
算法·leetcode·职场和发展
近津薪荼11 分钟前
dfs专题5——(二叉搜索树中第 K 小的元素)
c++·学习·算法·深度优先
xiaoye-duck13 分钟前
吃透 C++ STL list:从基础使用到特性对比,解锁链表容器高效用法
c++·算法·stl
松☆16 分钟前
CANN与大模型推理:在边缘端高效运行7B参数语言模型的实践指南
人工智能·算法·语言模型
_F_y18 分钟前
C++重点知识总结
java·jvm·c++
java干货27 分钟前
为什么 “File 10“ 排在 “File 2“ 前面?解决文件名排序的终极算法:自然排序
开发语言·python·算法
_F_y27 分钟前
C语言重点知识总结(含KMP详细讲解)
c语言·开发语言
毕设源码-郭学长28 分钟前
【开题答辩全过程】以 基于python的二手房数据分析与可视化为例,包含答辩的问题和答案
开发语言·python·数据分析
皮皮哎哟35 分钟前
数据结构:嵌入式常用排序与查找算法精讲
数据结构·算法·排序算法·二分查找·快速排序
程序员清洒43 分钟前
CANN模型剪枝:从敏感度感知到硬件稀疏加速的全链路压缩实战
算法·机器学习·剪枝