当前位置: 首页 > news >正文

using用法整理

using 的极简新手教程,用最直白的语言和代码解释:

美图美图


一、核心作用:给类型起别名

目的:让复杂类型名变短、变好记。
例子

// 原名:std::vector<std::string>  
// 起个别名就叫 StringList
using StringList = std::vector<std::string>;// 使用
StringList names = {"Alice", "Bob"};

二、基础用法

1. 给简单类型起别名
using Age = int;       // 把 int 叫 Age
Age myAge = 25;
2. 给复杂类型起别名
using Matrix = std::vector<std::vector<double>>;  // 二维数组
Matrix data = {{1.1, 2.2}, {3.3, 4.4}};
3. 给函数指针起别名(新手难点!)
// 原函数类型:void(*)(int),指向参数为int、返回void的函数
using Callback = void(*)(int);  // 起个别名叫 Callback// 使用
void print(int x) { std::cout << x; }
Callback func = print;  // func 就是函数指针
func(10);  // 调用 print(10)

三、using vs typedef(老方法)

功能相同,但 using 更直观!

// typedef 写法
typedef int Age;
typedef void(*Callback)(int);// using 写法(推荐!)
using Age = int;
using Callback = void(*)(int);

using 独有的超能力:给模板类型起别名

// 定义一个模板别名:任意类型的 pair
template<typename T>
using Pair = std::pair<T, T>;// 使用
Pair<int> point(1, 2);  // 等价于 std::pair<int, int>

四、实际应用场景

  1. 简化长类型名

    using FilePath = std::filesystem::path;
    FilePath p = "data.txt";
    
  • 统一跨平台代码

    #ifdef _WIN32
    using Socket = SOCKET;  // Windows 的 Socket 类型
    #else
    using Socket = int;     // Linux 的 Socket 类型
    #endif
    
  • 隐藏复杂实现

    // 头文件中声明别名
    using UserData = SomeComplicatedTemplateClass<int, std::string>;
    

五、一句话总结

using = 给类型起外号,让代码更干净!

  • 简单类型:using 别名 = 原名;
  • 函数指针:using 别名 = 返回类型(*)(参数列表);
  • 模板类型:template<typename T> using 别名 = ...

相关文章:

  • 高等数学同步测试卷 同济7版 试卷部分 上 做题记录 上册期中同步测试卷 B卷
  • c++ 类和动态内存分配
  • Java基础语法
  • 本地搭建MQTT服务器并进行设备控制(ESP32+MicroPython)
  • Qt6离线安装过程
  • HarmonyOS 笔记
  • 9.QT-显示类控件|Label|显示不同格式的文本|显示图片|文本对齐|自动换行|缩进|边距|设置伙伴(C++)
  • 2025.4.20总结
  • 基于尚硅谷FreeRTOS视频笔记——11—RTOS获取源码及源码简介
  • STM32基础教程——串口收发
  • YOLOv11改进——基于注意力机制和密集小目标增强型EVA模块的设计与实现
  • QML中的JSON 处理
  • VMware虚拟机走主机代理上网
  • SAP IAS云产品简介
  • 《猎豹夕阳》
  • 机器学习(神经网络基础篇)——个人理解篇6(概念+代码)———参数优化篇
  • 【AI图像创作变现】02工具推荐与差异化对比
  • Vue3中provide和inject数据修改规则
  • Kubernetes相关的名词解释API Server组件(9)
  • Python中的短路运算
  • 看着不爽就滚蛋!郑州大学第一附属医院一科室公众号被曝运营人员辱骂他人
  • 5月2日,全社会跨区域人员流动量完成29275.4万人次
  • 美国多地爆发集会抗议特朗普政府多项政策
  • 长江财险一季度净亏1449.81万元,去年曾实现扭亏为盈
  • 2025财政观察①长三角罚没收入增速放缓,24城仍在上涨
  • 今年4月上海一二手房成交面积同比增21%,二手房成交2.07万套