【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的使用 | 爱编程的大丙

相关推荐
Ai-_Man3 小时前
Coze扣子还是不可以导出左侧所有对话,只能点进去单条内容导出,方法不对吗?
开发语言·人工智能·ai·小程序·1024程序员节
UIU1143 小时前
P16237 [蓝桥杯 2026 省 B] 应急布线
数据结构·c++·算法·蓝桥杯
raindayinrain3 小时前
c++设计模式
开发语言·c++·设计模式
旖旎夜光3 小时前
LeetCode 315: 算右侧小于当前元素的个数(归并排序) —— 题解
c++·学习·算法·leetcode·排序算法
hiahiahia1233 小时前
Streaming Model Output
开发语言·前端
像风一样自由20203 小时前
2.如何用FastAPI把一个Python算法封装成HTTP服务
python·算法·fastapi
D e re k ZH3 小时前
保序回归:从 PAVA 到可并堆的单调约束优化
c++·算法·数据挖掘·回归·kotlin
青少儿编程课堂3 小时前
蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:字典树前缀树与单词检索统计
c++·python·算法·bfs·信息学竞赛
Nuanyt3 小时前
LeetCode Hot 100 链表专题2 3 题 (Java)
java·笔记·算法·leetcode·链表
熊猫钓鱼>_>4 小时前
鸿蒙PC高分屏与键鼠交互适配:DPI缩放、右键菜单一次讲清
开发语言·笔记·华为·ai编程·harmonyos·鸿蒙·鸿蒙心迹