C++11快餐教程(1)-通过using定义类型的别名
2023-09-14 09:00:25 时间
C++11快餐教程(1)-通过using定义类型的别名
【C/C++】用格雷戈里公式求π 输入精度e,使用格雷戈里公式(π/4=1-1/3+1/5+...)求π的近似值,精确到最后一项的绝对值小于e。要求定义和调用函数funpi(e)求π的近似值。
lusing 刘子瑛,阿里系统框架专家。工作十余年,一直对新编程语言、新开发方法、数学与算法相关和并发等相关领域保持浓厚的兴趣。乐于通过技术分享促进新技术。
在C/C++中,我们经常通过typedef来定义类型的别名。
例如:
typedef unsigned char u1; typedef unsigned short u2;
但是,这样定义有一点不好,新定义的别名是放在后面的。一般我们都是通过别名找原名,从后往前找还是不方便的。
那么,我们把别名定义在前面好不好?
using u4 = uint32_t; using u8 = uint64_t;
在C++11中,using不再只是用于using namespace啦,从此在别名领域大显身手。
using用来定义别名,特别适用于在模板的情况下:
下面的例子来源于ART中的容器类型的定义:
template typename T using ArenaDeque = std::deque T, ArenaAllocatorAdapter T ; template typename T using ArenaQueue = std::queue T, ArenaDeque T ; template typename T using ArenaVector = std::vector T, ArenaAllocatorAdapter T ; template typename T, typename Comparator = std::less T using ArenaSet = std::set T, Comparator, ArenaAllocatorAdapter T ; template typename K, typename V, typename Comparator = std::less K using ArenaSafeMap = SafeMap K, V, Comparator, ArenaAllocatorAdapter std::pair **const** K, V
有了上面的定义之后,我们的封装后的类型就可以泛型使用了:
ArenaVector MIRLocation method_stack_; // Include stack
这是typedef无法实现的哦。
小结一下:
C++11中的using关键字可以实现typedef的功能,而using的定义顺序有利于查找 using在模板类型的别名定义比typedef要有效【C/C++】用格雷戈里公式求π 输入精度e,使用格雷戈里公式(π/4=1-1/3+1/5+...)求π的近似值,精确到最后一项的绝对值小于e。要求定义和调用函数funpi(e)求π的近似值。
lusing 刘子瑛,阿里系统框架专家。工作十余年,一直对新编程语言、新开发方法、数学与算法相关和并发等相关领域保持浓厚的兴趣。乐于通过技术分享促进新技术。
相关文章
- C++ 使用静态链接库和动态链接库
- C++-教程2-VS2010C++相关文件说明
- visual C++游戏绘图之透明效果制作原理
- 优就业C/C++教程-C++中引用和匿名对象的理解和本质剖析
- 【C/C++学院】(4)c++开篇/类和对象/命名空间/类型增强/三目运算符/const专题/引用专题/函数增强
- C++学习随笔
- C++11时代的标准库快餐教程(1) - 不同类型值组成的简单列表
- C++11时代的标准库快餐教程(4) - 排序算法的应用
- C++Qt开发——操作MySQL数据库
- C++实现Json解析详细教程
- 【代码质量】C/C++代码静态分析与常用分析软件工具
- electron源码编译 添加builtin 内建 c++扩展
- c++ vector C++ vector存放结构体 并且排序
- c++ 函数的指针调用
- C++ 值传递、指针传递、引用传递详解(六十)
- VC++2017里使用正则表达式
- 在 Visual Studio 中自动创建 C++ 成员函数
- VC++时间函数的使用(附源码)
- C++ 多态
- C/C++语言中字符串输入详解
- C++Primer学习笔记3-类
- ❤️C++ Switch 语句教程❤️
- ❤️ 六千字C++字符串详细教程❤️
- 【番外】VS2015配置Halcon的C++环境---保姆式教程
- C++的学习心得和知识总结(十七)|Visual Studios 2019配置游戏开发引擎HGE1.8教程