3. Spaces in Template Expression、nullptr and std--nullptr_t、Automatic Type Deduction with auto

从跳表无锁插入到元数据原子发布:现代 C++ 存储内核如何跨越物理 I/O 与 CPU 内存模型 在现代工业级 LSM-Tree 存储引擎的内核设计中,C++ 工程师对“无锁化(Lock-Free)”与“纳秒级确定性”的极致偏执,几乎被雕刻进了每一行代码里。为了抹平动态内存分配器的碎片与互斥锁竞争,我们在写入路径上采用紧凑的 Arena 内存池与无锁单写多读跳表(),将插入操作的延迟死死压制在 CPU 缓存流水线的物理极限;为了让前台点查(Point Get)彻底告别昂贵的全局锁争用与特权级上下文切换,引擎巧妙融合了线程局部缓存( 阅读详情

Template表达式中的空格

在这里插入图片描述

nullptr

标准库允许使用nullptr****取代0或者NULL对指针赋值。

  • nullptr 是个新关键字

  • nullptr 可以被自动转换为各种 pointer 类型,但不会被转换为任何整数类型,

  • nullptr的类型为std::nullptr_t,定义于头文件 cstddef中.

#include <iostream>

using namespace std;

void f(int)
{
    cout<<"NUll"<<endl;
}

void f(void*)
{
    cout<<"nullptr"<<endl;
}


int main()
{
    f(NULL);
    f(nullptr);
    
    return 0;
}

经过实际运行,当两个函数都存在时,会产生二义性,编译报错

void f(void*)
{
    cout<<"nullptr"<<endl;
}

f(0); // 调用 f(int).
f(NULL); // 如果定义NULL为0,则调用 f(int),否则调用 f(void *).
f(nullptr); // 调用 f(void *).

自动推导类型auto

1)C++11 auto可以进行自动类型推导。

  • C语言默认的局部变量是auto类型的

  • C++11 auto可以进行自动类型推导

(2)使用auto的场景类型太长或者类型太复杂

vector<string> v;
vector<string>::iterator p = v.begin() //类型太长+类型太复杂
auto p = v.begin();

eg2:
auto i = [](int x){...};

lamda表达式: 没有函数名的函数

在这里插入图片描述

C++——C++基础】 本文系统介绍了C++中的命名空间、输入输出、缺省参数、函数重载与引用机制。命名空间有效避免标识符冲突,通过namespace和::实现作用域隔离;C++输入输出流(cin/cout)基于std命名空间,支持自动类型识别;缺省参数需从右向左连续定义,且声明中指定默认值;函数重载通过形参差异实现多态;引用作为变量别名,无额外内存开销,广泛用于传参与返回值,提升效率,但不可改变指向,且不能返回局部变量引用。 阅读详情

相关推荐

【C语言】初识 C 语言(点到为止)

C 语言概览

BaconZzz的博客 225

顺序表(Sequential List)详解:从数组到 C 语言实现

顺序表是用连续存储单元依次存储数据元素的线性结构,数组则是其最常见的实现方式,两者本质相同、仅视角不同——数组关注物理存储,顺序表关注逻辑关系。顺序表支持随机访问 $O(1)$,但插入删除需移动元素,效率为 $O(n)$。本文用 C 语言静态数组完整实现了顺序表的初始化、增删改查操作,帮助初学者在不涉及指针的前提下理解其核心原理,为后续学习动态顺序表打下基础。

Guangyu536的博客 308

Qwen3-ForcedAligner-0.6B 私有化部署实战:从模型离线、Docker封装到会议原声精准回听

text=text,模型离线下载版本固定SHA256目录规划环境隔离Docker封装GPU绑定健康检查长音频切片全局时间恢复临时文件清理日志脱敏离线验证模型升级快速回滚这些内容看起来和“模型算法”关系不大,却决定了一个 AI 模块究竟只能停留在 Demo,还是能长期运行在真实系统里。已经知道说了什么↓准确找到它什么时候说逐字稿点击回听搜索定位纪要复核会议资料追溯从产品界面上看,它可能只是用户点击一句话以后,播放器准确跳到了对应位置。

shxjnpl的博客 187

C++ STL set 与 map 全套详解:关联式容器、红黑树底层、代码坑点、刷题实战

本文系统讲解STL中set/multiset/map/multimap的接口、底层红黑树原理及高频坑点,对比有序与无序容器性能差异,结合力扣例题剖析实际应用,涵盖迭代器特性、插入删除机制、区间操作与面试重点,全面掌握关联式容器核心知识。

xxwxx__的博客 267

C++】 定时器进阶:多层时间轮原理与任务迁移

单层时间轮虽然能够以较低的开销管理大量定时任务,但当任务延迟时间跨度很大时,要么需要大量槽位,要么需要额外维护轮数。多层时间轮通过将不同时间范围的任务放到不同层级中,实现类似“秒针、分针、时针”的分级管理。本文主要介绍多层时间轮为什么出现、各层如何划分、定时任务如何选择层级,以及高层任务如何逐步迁移到低层并最终执行。

qq_64148519的博客 116

STM32 USART 详解(八):C I/O 串口重定向原理与实现

本文深入解析STM32串口重定向C标准I/O的核心原理与实现。文章从printf/scanf底层机制入手,剖析数据流向,并提供fputc与fgetc的完整重定向代码。同时深度解析换行符及输入机制问题,最后通过完整测试验证数据流~

2502_91499791的博客 139

附录 C:AOSP 不在公共框架 API 中采用 Kotlin 的原因

以及源码。契约生命周期约束设备发布后会锁定某个 SDK 版本长达接近十年。每一条签名,必须兼容未来所有 kotlinc 版本、Kotlin 元数据格式变更、标准库改动。内部 Kotlin 不受该限制:编译器签名变化可以通过下一次全量重编译抹平。二进制 ABI 映射差异Java 源码声明与 JVM 签名一一对应。Kotlin 一条源码会产出一组 JVM 产物:重载方法、名字混淆、伴生对象访问器、合成辅助函数、Continuation 参数、元数据块;组合结果完全依赖编译器。

dengfuma的专栏 742

​​​​​​​第 4 节 如何用 C++ 设计一个 AI 推理 SDK 的核心接口

AI推理SDK核心接口应遵循“环境→模型→执行器→张量”四层抽象,采用不透明指针保证ABI稳定,以C API为底座、C++ API为封装,统一错误处理,并权衡张量、内存、异步、线程安全与插件扩展。参考ONNXRuntime、TensorRT、OpenVINO设计,实现易用、高性能、可扩展的工业级接口。

Question_123456的博客 521

Linux驱动子系统:Clock(CCF)子系统 —— Consumer和Provider(004)

Linux驱动子系统:Clock Common Framework,通用时钟框架

weixin_43390831的博客 291

DeepSeek Harness 系列(02):万物皆插件——Cordis 核心设计深度解读

dsh 的所有能力都建立在 Cordis 插件框架之上。这篇文章结合真实源码,深度解读 Cordis 五个核心机制:Plugin、Context、Service、Event、Effect——每个机制讲清楚「是什么、怎么用、为什么这么设计」。读完之后,dsh 的一切都会豁然开朗。

Cheson的专栏 529

9.13华为OD机试真题 新系统 - 路由器网络连通性检测 (Java/Py/C/C++/Js/Go)

华为OD机试真题 新系统【路由器网络连通性检测】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题 【路由器网络连通性检测】多语言题解。

qq_45776114的博客 401

Type-C快充取电芯片工作流程:从适配器识别到电压输出

PW6607是一颗USB电源传输接收SINK端控制器芯片,PW6607可以从PD/QC适配器电源请求PW6606设定的电压。当连接USB电源时,PD/QC协议自动通讯,完成PW6607设定的电压请求通讯,并输出通讯设定的电压。PW6606内置 PD 通讯模块和QC通讯,集成度高,外围简洁。PD协议优先级高于QC协议,仅当PD诱骗异常或者前端不支持PD时,才会进行 QC诱骗。PD 握手会优先寻找适配设置电压的 PDO 挡位,当没有需要的挡位时,自动降低电压挡位诱骗。5V,9V,12V和20V(PD);

MILLET6的博客 142

实现pytorch resnet18功能(二,c++ cudnn)

/输出32*32*32-----------------------显然输入也是32*32*32。, _ci(ci), _co(co), _h(h), _w(w), _jjh(juanjihe), _pad(pading) {//int stride=2,juanjihe=1时,pading=0;原因是残差块中最后一步只实现了相加,并没有实现relu,所以这个架构中,所有残差块类都跟有relu!

ganggangwawa的博客 204

VSCode C/C++环境设置

本文介绍了在VSCode中配置C/C++开发环境的完整流程:通过下载MinGW-w64工具链,安装C/C++及C/C++ Runner扩展,配置tasks.json与launch.json实现编译、运行与调试。重点说明了使用快捷键(如Ctrl+Shift+B编译、F5调试)及解决中文路径导致GDB报错的方法。适合初学者快速搭建高效C/C++开发环境。

念致达的博客 176

C++速通2

int a = 3;int b = 4;// 声明名字空间int main()int a = 1;// 1// ::表示全局作用域 2// 3// 4return 0;```一个函数使用virtual关键字修饰,就是虚函数,虚函数是函数覆盖的前提。在QtCreator中使用斜体字。```cpppublic:// 虚函数cout << "动物爱吃饭" << endl;

qq_63858767的博客 443

ARM64 Linux 6.10 内核驱动(14):drivers/base/platform.c:板级设备主战场

本文详解 drivers/base/platform.c 在 QEMU virt + ARM64 平台下如何实现平台设备驱动模型。核心是将无自动注册能力的 MMIO 设备通过 platform_bus_init 建立伪总线,设备通过 platform_device_add 挂载至该总线,驱动则通过 __platform_driver_register 注册并绑定。匹配机制优先依赖 DT 的 compatible(of_match_table),其次为旧式 id_table 和名称匹配。platform_pr

T1mzhou的博客 184

上海安全员C证题库刷题:有限空间作业审批表应包含哪些内容

有限空间作业审批表这个考点,出题角度可以很细:内容项、签字人、保存期限、变更条件,每个都能单独出题。有限空间作业审批表的内容、审批人、变更条件和保存要求,是上海安全员C证的高频出题区。【解析】审批表的核心是管住“人、时、地、风险、措施”,家庭住址与作业安全无关。这道题属于易错题,很多人看到“人员信息”就选B,其实监护人员姓名恰恰是必须写清楚的,别混淆。【解析】气体检测是有限空间作业的“生死线”,审批表上要能还原检测过程。【解析】审批表要体现“先通风、再检测、后作业”的原则,通风、防护、应急三项是标配。

renrenti的博客 237

C++ std::queue<float> 完整教程

std::queue是front()back()push()pop()

谢谢大家的关注和点赞!这里只有纯纯的知识干货,没有一句废话。希望能实实在在帮到大家~要是觉得有用,别忘了给我点支持哟,你 81
上一篇: 刷题记录|Day17 ● 110.平衡二叉树 ● 257. 二叉树的所有路径 ● 404.左叶子之和
下一篇: linux系统从开机到登陆界面的启动过程
null_one
博客等级 码龄8年 846粉丝 87原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值