C++ using(八股总结)

using作用:

  • 类型别名
  • using声明
  • using指示

类型别名

using 可以用来创建类型别名,替代传统的 typedef。这在定义复杂类型时尤其有用,例如模板类型。

c 复制代码
// 使用 typedef 创建类型别名
typedef long long ll;

// 使用 using 创建类型别名
using ll = long long;

// 对模板类型创建别名
template<typename T>
using Vec = std::vector<T>;

using 声明

一条 using 声明 语句一次只引入命名空间的一个成员。它使得我们可以清楚知道程序中所引用的到底是哪个名字。如:

cpp 复制代码
using namespace_name::name;

using 指示

using 指示 使得某个特定命名空间中所有名字都可见,这样我们就无需再为它们添加任何前缀限定符了。如:

cpp 复制代码
using namespace_name name;

尽量少使用 using 指示 污染命名空间

一般说来,使用 using 命令比使用 using 编译命令更安全,这是由于它只导入了指定的名称 。如果该名称与局部名称发生冲突,编译器将发出指示 。using编译命令导入所有的名称,包括可能并不需要的名称。如果与局部名称发生冲突,则局部名称将覆盖名称空间版本 ,而编译器并不会发出警告。另外,名称空间的开放性意味着名称空间的名称可能分散在多个地方,这使得难以准确知道添加了哪些名称。

using 使用

尽量少使用 using 指示

cpp 复制代码
using namespace std;

应该多使用 using 声明

cpp 复制代码
int x;
std::cin >> x ;
std::cout << x << std::endl;

或者

cpp 复制代码
using std::cin;
using std::cout;
using std::endl;
int x;
cin >> x;
cout << x << endl;

主要区别

特性 using 声明 using 指示
引入范围 指定的单个名称 整个命名空间的所有名称
潜在冲突风险 低,因为只引入特定名称 高,可能引入命名冲突
作用范围 当前作用域(如函数内部) 全局作用域或所在的代码块
代码可读性 高,明确指出使用了哪些名称 可能降低,难以追踪使用了哪些命名空间中的名称
使用场景 需要频繁使用某些特定名称且希望避免命名冲突时 小型项目或特定范围内简化代码书写时
相关推荐
ht巷子3 分钟前
Qt:容器类
开发语言·c++·qt
superman超哥8 分钟前
仓颉协程调度机制深度解析:高并发的秘密武器
c语言·开发语言·c++·python·仓颉
努力的小帅9 分钟前
Linux_进程间通信(Linux入门到精通)
linux·c++·centos·共享内存·进程通信·命名管道·管道的学习
平常心cyk17 分钟前
C++ 继承与派生知识点详解
开发语言·c++
H_BB20 分钟前
LRU缓存
数据结构·c++·算法·缓存
charlie11451419120 分钟前
嵌入式现代C++:何时用 C++、用哪些 C++ 特性(折中与禁用项)
开发语言·c++·笔记·学习
历程里程碑2 小时前
LeetCode热题11:盛水容器双指针妙解
c语言·数据结构·c++·经验分享·算法·leetcode·职场和发展
郝学胜-神的一滴2 小时前
使用OpenGL绘制卡通效果的圣诞树
开发语言·c++·程序人生·游戏·图形渲染
Morwit10 小时前
【力扣hot100】64. 最小路径和
c++·算法·leetcode
OliverH-yishuihan10 小时前
开发linux项目-在 Windows 上 基于“适用于 Linux 的 Windows 子系统(WSL)”
linux·c++·windows