- 前言之前我们学习了类中的一些默认成员函数:构造函数、析构函数、拷贝构造函数、赋值重载。今天,我们接着学习剩下的取地址运算符重载以及其他关于类和对象的知识。 一、取地址运算符重载取地址运算符重载分为两种:普通对象的取地址重载和const对象取地址重载。为了说明这两种取地址重载的区别,我们首先引入一个概念:const修饰成员函数。 1. const修饰成员函数在c++中,成员函数可以被cons... 前言之前我们学习了类中的一些默认成员函数:构造函数、析构函数、拷贝构造函数、赋值重载。今天,我们接着学习剩下的取地址运算符重载以及其他关于类和对象的知识。 一、取地址运算符重载取地址运算符重载分为两种:普通对象的取地址重载和const对象取地址重载。为了说明这两种取地址重载的区别,我们首先引入一个概念:const修饰成员函数。 1. const修饰成员函数在c++中,成员函数可以被cons...
- 1. std::remove_cvref 是什么? 2. 示例代码 3. 为什么需要 std::remove_cvref? 4. 实现原理 5. 使用场景 6. 注意事项 7. 总结在 C++20 中,标准库引入了许多新特性,其中 std::remove_cvref 是一个非常实用的类型特征工具,它极大地简化了类型处理的复杂性。 1. std::remove_cvref 是什么?std::... 1. std::remove_cvref 是什么? 2. 示例代码 3. 为什么需要 std::remove_cvref? 4. 实现原理 5. 使用场景 6. 注意事项 7. 总结在 C++20 中,标准库引入了许多新特性,其中 std::remove_cvref 是一个非常实用的类型特征工具,它极大地简化了类型处理的复杂性。 1. std::remove_cvref 是什么?std::...
- 引言 1. 背景与动机 1.1 回顾 std::make_shared 的演变 1.2 为什么需要支持数组 2. C++20 中 std::make_shared 的数组支持 2.1 基本语法 2.2 示例代码 3. 性能与内存管理 4. 最佳实践与注意事项 4.1 适用场景 4.2 不适用场景 4.3 注意事项 5. 未来展望 结语 引言C++20 对 std::make_shared ... 引言 1. 背景与动机 1.1 回顾 std::make_shared 的演变 1.2 为什么需要支持数组 2. C++20 中 std::make_shared 的数组支持 2.1 基本语法 2.2 示例代码 3. 性能与内存管理 4. 最佳实践与注意事项 4.1 适用场景 4.2 不适用场景 4.3 注意事项 5. 未来展望 结语 引言C++20 对 std::make_shared ...
- 前言之前我们在 类和对象(上)中了解了关于类的定义、对象的创建等一些基本知识:【c++】类和对象(上)(类的定义格式、访问限定符、类域、类的实例化、对象的内存大小、this指针)-CSDN博客今天,我们深入学习类和对象中默认成员函数相关的内容。 什么是默认成员函数所谓默认成员函数,就是在类当中我们没有显示实现,但是编译器自动生成的成员函数称之为默认成员函数。在c++11之前,默认成员函数一... 前言之前我们在 类和对象(上)中了解了关于类的定义、对象的创建等一些基本知识:【c++】类和对象(上)(类的定义格式、访问限定符、类域、类的实例化、对象的内存大小、this指针)-CSDN博客今天,我们深入学习类和对象中默认成员函数相关的内容。 什么是默认成员函数所谓默认成员函数,就是在类当中我们没有显示实现,但是编译器自动生成的成员函数称之为默认成员函数。在c++11之前,默认成员函数一...
- 前言c++是一种支持面向对象编程(OOP)的语言,而在面向对象编程当中,类和对象是核心概念,理解类和对象是学习面向对象编程的基石。面向对象编程是一种编程范式,它使用“类”来定义对象的属性和方法,完成对软件的设计。掌握类和对象的概念及其相互关系,对于深入理解并有效应用面向对象编程至关重要。 一、类的概念及定义类的本质是一种自定义类型,是定义对象模板的蓝图或者结构。它制定了对象可以包含的数据以... 前言c++是一种支持面向对象编程(OOP)的语言,而在面向对象编程当中,类和对象是核心概念,理解类和对象是学习面向对象编程的基石。面向对象编程是一种编程范式,它使用“类”来定义对象的属性和方法,完成对软件的设计。掌握类和对象的概念及其相互关系,对于深入理解并有效应用面向对象编程至关重要。 一、类的概念及定义类的本质是一种自定义类型,是定义对象模板的蓝图或者结构。它制定了对象可以包含的数据以...
- 前言我们都知道,在c语言中,指针是一种功能十分强大的数据类型,它允许我们直接访问并且操作内存。然而,它在使用时稍有不慎,就会出错。对此,c++引入了一个新的概念:引用。引用可以实现部分类似于指针的功能,并且它比指针更加安全、简洁。 一、引用的概念和定义引用,作为c++中的一种特殊别名机制,当我们定义引用时,并不是创建了一个新变量,而是给原有的变量起了一个别名。它的定义方式如下:(数据类型)... 前言我们都知道,在c语言中,指针是一种功能十分强大的数据类型,它允许我们直接访问并且操作内存。然而,它在使用时稍有不慎,就会出错。对此,c++引入了一个新的概念:引用。引用可以实现部分类似于指针的功能,并且它比指针更加安全、简洁。 一、引用的概念和定义引用,作为c++中的一种特殊别名机制,当我们定义引用时,并不是创建了一个新变量,而是给原有的变量起了一个别名。它的定义方式如下:(数据类型)...
- 引言 1. 整数 2 的幂运算 1.1 检测是否为 2 的幂:std::has_single_bit 1.2 计算不小于 x 的最小 2 的幂:std::bit_ceil 1.3 计算不大于 x 的最大 2 的幂:std::bit_floor 2. std::bit_cast 2.1 基本用法 2.2 实用场景:字节序列与结构体之间的转换 3. 总结 引言C++20 引入了 <bit> 头... 引言 1. 整数 2 的幂运算 1.1 检测是否为 2 的幂:std::has_single_bit 1.2 计算不小于 x 的最小 2 的幂:std::bit_ceil 1.3 计算不大于 x 的最大 2 的幂:std::bit_floor 2. std::bit_cast 2.1 基本用法 2.2 实用场景:字节序列与结构体之间的转换 3. 总结 引言C++20 引入了 <bit> 头...
- 前言c++是在c语言的基础上,增加了面向对象编程、引用、函数重载、模板库STL等新特性,使得c++成为一门功能强大、灵活多变的语言。c++在语法上兼容大部分c语言,因而学习了c语言之后,会对c++学习有一定的帮助。相比java,c++语法的学习难度较高,但是它难学易用,也有利于我们理解底层,是一门十分值得深入学习的语言。接下来我们会重点介绍一些c++的前置基础知识,便于我们快速入门c++语... 前言c++是在c语言的基础上,增加了面向对象编程、引用、函数重载、模板库STL等新特性,使得c++成为一门功能强大、灵活多变的语言。c++在语法上兼容大部分c语言,因而学习了c语言之后,会对c++学习有一定的帮助。相比java,c++语法的学习难度较高,但是它难学易用,也有利于我们理解底层,是一门十分值得深入学习的语言。接下来我们会重点介绍一些c++的前置基础知识,便于我们快速入门c++语...
- C++ 深度优先搜索(DFS)全解析 引言深度优先搜索(DFS)是一种用于遍历或搜索图形结构的算法。作为基本的图搜索算法之一,DFS 在许多计算问题中起着核心作用,如路径查找、连通性检测等。 技术背景 图论基础在图论中,图由节点(顶点)和边构成。图可以是有向或无向的,并可能包含环。在这样的结构中,寻找有效的遍历方式是一项重要任务。DFS 是一种系统地访问图中所有节点的方法,通过尽可能深入地... C++ 深度优先搜索(DFS)全解析 引言深度优先搜索(DFS)是一种用于遍历或搜索图形结构的算法。作为基本的图搜索算法之一,DFS 在许多计算问题中起着核心作用,如路径查找、连通性检测等。 技术背景 图论基础在图论中,图由节点(顶点)和边构成。图可以是有向或无向的,并可能包含环。在这样的结构中,寻找有效的遍历方式是一项重要任务。DFS 是一种系统地访问图中所有节点的方法,通过尽可能深入地...
- C++ 高性能内存池 引言在高性能计算和实时系统中,内存分配的效率和速度至关重要。传统的内存管理方式如 new 和 delete 会带来较大的性能开销,特别是在频繁分配和释放内存时。因此,设计一个高效的内存池(Memory Pool)可以显著提高程序性能。 技术背景 内存池内存池是一种优化的内存管理技术,它通过预先分配一大块内存并根据需要分配小块以供应用程序使用。这样可以减少内存碎片以及分... C++ 高性能内存池 引言在高性能计算和实时系统中,内存分配的效率和速度至关重要。传统的内存管理方式如 new 和 delete 会带来较大的性能开销,特别是在频繁分配和释放内存时。因此,设计一个高效的内存池(Memory Pool)可以显著提高程序性能。 技术背景 内存池内存池是一种优化的内存管理技术,它通过预先分配一大块内存并根据需要分配小块以供应用程序使用。这样可以减少内存碎片以及分...
- C++领域——STL(String类的模拟实现) 引言C++ 标准模板库(STL)提供了丰富的数据结构和算法,其中 std::string 是处理字符串的核心类。虽然 STL 已经提供了高效的字符串操作支持,但通过模拟实现 std::string 类可以帮助我们更深入地理解其内部机制和设计原则。 技术背景 STL 的 std::stringstd::string 是一个动态数组,用于表示和... C++领域——STL(String类的模拟实现) 引言C++ 标准模板库(STL)提供了丰富的数据结构和算法,其中 std::string 是处理字符串的核心类。虽然 STL 已经提供了高效的字符串操作支持,但通过模拟实现 std::string 类可以帮助我们更深入地理解其内部机制和设计原则。 技术背景 STL 的 std::stringstd::string 是一个动态数组,用于表示和...
- 1. 字节序的基本概念 2. std::endian的定义与使用 3. 示例代码 4. 字节序的重要性 5. 字节序转换方法 6. 实际应用 7. 总结在C++20中,std::endian的引入为开发者提供了一种便捷的方式来处理和判断系统的字节序(Endianness)。字节序是指计算机存储多字节数据时字节的排列顺序,主要分为大端(Big-Endian)和小端(Little-Endian... 1. 字节序的基本概念 2. std::endian的定义与使用 3. 示例代码 4. 字节序的重要性 5. 字节序转换方法 6. 实际应用 7. 总结在C++20中,std::endian的引入为开发者提供了一种便捷的方式来处理和判断系统的字节序(Endianness)。字节序是指计算机存储多字节数据时字节的排列顺序,主要分为大端(Big-Endian)和小端(Little-Endian...
- 封装哈希表实现 unordered_map 和 unordered_set 引言在现代编程中,哈希表是一种高效的数据结构,它能够以常数时间复杂度完成插入、删除和查找操作。C++ 标准库提供了 unordered_map 和 unordered_set 容器,它们基于哈希表实现,为开发者提供了灵活且高效的键值存储解决方案。本文将介绍如何封装和实现这两个容器。 技术背景 哈希表哈希表是一个数据... 封装哈希表实现 unordered_map 和 unordered_set 引言在现代编程中,哈希表是一种高效的数据结构,它能够以常数时间复杂度完成插入、删除和查找操作。C++ 标准库提供了 unordered_map 和 unordered_set 容器,它们基于哈希表实现,为开发者提供了灵活且高效的键值存储解决方案。本文将介绍如何封装和实现这两个容器。 技术背景 哈希表哈希表是一个数据...
- 一、std::span 是什么? 二、std::span 的核心特性 (一)动态与静态范围 (二)统一函数接口 (三)子视图操作 三、std::span 的优势 (一)提高代码的安全性和可读性 (二)轻量级与高性能 四、std::span 的使用场景 (一)作为函数参数 (二)与标准库算法结合 (三)处理多维数组 五、最佳实践与注意事项 (一)避免悬挂引用 (二)选择合适的范围类型 (三)... 一、std::span 是什么? 二、std::span 的核心特性 (一)动态与静态范围 (二)统一函数接口 (三)子视图操作 三、std::span 的优势 (一)提高代码的安全性和可读性 (二)轻量级与高性能 四、std::span 的使用场景 (一)作为函数参数 (二)与标准库算法结合 (三)处理多维数组 五、最佳实践与注意事项 (一)避免悬挂引用 (二)选择合适的范围类型 (三)...
- 一、什么是 std::source_location? 1. 基本功能 2. 使用示例 二、应用场景 1. 日志记录 2. 错误处理 3. 断言 三、性能与限制 1. 性能 2. 限制 四、总结在 C++20 中,众多新特性和改进为开发者带来了诸多便利,其中 std::source_location 是一个非常实用且容易被忽视的特性。它可以帮助我们更方便地获取代码的运行时位置信息,从而在调... 一、什么是 std::source_location? 1. 基本功能 2. 使用示例 二、应用场景 1. 日志记录 2. 错误处理 3. 断言 三、性能与限制 1. 性能 2. 限制 四、总结在 C++20 中,众多新特性和改进为开发者带来了诸多便利,其中 std::source_location 是一个非常实用且容易被忽视的特性。它可以帮助我们更方便地获取代码的运行时位置信息,从而在调...
上滑加载中
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签