
c++
文章平均质量分 90
yingjuxia.com
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++ OpenCV
是一个开源的计算机视觉与机器学习库,提供了丰富的图像/视频处理算法。它以 C++ 为主,兼容 C、Python、Java 等接口,广泛应用于图像处理、实时视频分析、人脸识别、增强现实等领域。原创 2025-07-13 09:56:14 · 900 阅读 · 0 评论 -
C++ 标准库 <numbers>
自 C++20 起,标准库在<numbers>中提供了一组常用数学常量(如 π、e、ln 2 等)的类型安全实现,避免了手写魔法数字、提升了可读性和可移植性。所有常量均位于命名空间,并以变量模板或类模板形式提供。原创 2025-07-13 09:54:41 · 805 阅读 · 0 评论 -
C++ 标准库 <cstdlib>
cstdlib>头文件是 C++ 标准库的核心组件之一,最初来源于 C 语言的<stdlib.h>,并在 C++ 中进行了增强,以适应面向对象的编程需求。从搜索结果来看,<cstdlib>的内容包括一系列函数和宏,提供了各种实用工具,这些功能在多个中文编程资源中都有详细讲解,例如菜鸟教程、异常教程和 Incredibuild 的博客。<cstdlib>的设计目标是提供通用的低级功能,支持内存管理、程序控制和数据处理等操作,特别适合需要与 C 代码兼容或处理系统级任务的场景。原创 2025-07-13 09:53:11 · 944 阅读 · 0 评论 -
C++ 标准库中的 <cfloat> 模块
cfloat>是 C++ 标准库中的一个头文件,来源于 C 语言的<float.h>,用于定义浮点数类型的各种特性宏。这些宏帮助开发者了解浮点数的范围和精度,特别适合在跨平台开发中确保代码的正确性。<cfloat>头文件是 C++ 标准库的一部分,主要用于支持浮点数类型的数值范围和精度查询,解决了在处理浮点数时可能出现的溢出和精度问题。从搜索结果来看,<cfloat>的内容包括一系列宏定义,如FLT_MINFLT_MAX等,这些宏描述了类型的最小值、最大值、机器 epsilon 和有效数字位数等信息。原创 2025-07-13 09:51:12 · 987 阅读 · 0 评论 -
C++ 标准库 <climits>
climits>是 C++ 标准库中的一个头文件,主要用于定义整数类型(如charintlong等)的数值限制。这些限制包括类型的最小值和最大值等信息,帮助开发者避免数据溢出和确保程序的正确性。它类似于 C 语言中的<limits.h>,适合在开发和调试阶段使用。<climits>头文件是 C++ 标准库的一部分,主要用于支持整数类型的数值范围查询,解决了在处理不同数据类型时可能出现的溢出问题。从搜索结果来看,<climits>的内容包括一系列宏定义,如CHAR_MININT_MAX。原创 2025-07-13 09:49:18 · 856 阅读 · 0 评论 -
C++ 标准库 cwchar
C++ 标准库的<cwchar>头文件是处理宽字符和宽字符串的核心工具,特别适合需要支持国际化文本(如中文)的场景。它提供了类似于标准字符处理函数的宽字符版本,如wcslen(计算宽字符串长度)和fwprintf(宽字符文件输出),帮助开发者更方便地管理多字节字符。<cwchar>头文件是 C++ 标准库的一部分,主要用于支持宽字符和宽字符串的处理,解决了传统单字节字符(char)在处理多语言文本时的局限性。从搜索结果来看,<cwchar>的内容包括字符串操作函数(如wcslenwcscpy。原创 2025-07-13 09:47:14 · 322 阅读 · 0 评论 -
C++ 标准库 <exception>
定义了 C++ 异常处理机制的基础类型及其若干派生类,同时提供了控制异常传播和终止的函数。所有类型和函数均在std命名空间中,可与trycatchthrow、以及中的更多具体异常类型配合使用。原创 2025-07-12 10:21:35 · 569 阅读 · 0 评论 -
C++ 标准库 <typeinfo>
typeinfo>依赖于编译器的运行时类型识别(RTTI)机制,允许在程序运行期间查询对象或表达式的类型信息。typeid操作符类注意:在多数编译器中,RTTI 默认开启;可通过编译选项(如 GCC 的-fno-rtti)关闭,关闭后<typeinfo>功能受限。原创 2025-07-12 10:19:21 · 900 阅读 · 0 评论 -
C++ 标准库 <type_traits>
中定义了一系列编译期模板,用于对类型特性进行布尔查询(如是否为指针、是否可拷贝、是否为浮点型等),以及基于原始类型生成新类型(如添加/去除constvolatile、提取内置数组元素类型、替换void为nullptr_t等)。所有工具均在编译期计算,可用于 SFINAE、、模板元编程和泛型库设计,提升类型安全性与灵活性。原创 2025-07-12 10:17:27 · 891 阅读 · 0 评论 -
C++ 标准库 <atomic>
atomic>提供了原子操作类型和函数,使多个线程在不加锁的情况下也能安全地访问和修改共享数据。通过硬件或编译器内置的原子指令实现,通常具有比互斥量更低的开销,但对内存可见性和指令重排更敏感。原子类型原子操作内存序(memory_order),以及屏障。原创 2025-07-12 10:15:28 · 853 阅读 · 0 评论 -
C++ 标准库 <future>
future>主要用于异步任务发起者(Producer):将任务打包、提交,并最终“设置”结果或异常;消费者(Consumer):通过或等对象等待任务完成并获取结果。它的设计遵循延迟执行同步等待和异常传递三大原则,能与、线程池、事件循环等底层机制配合使用。原创 2025-07-12 10:12:16 · 749 阅读 · 0 评论 -
C++ 标准库 <condition_variable>
条件变量(Condition Variable)是一种线程同步原语,用于在线程间等待某个条件成立,并在条件发生变化时通知一个或多个等待线程继续执行。与互斥量(<mutex>)配合使用,可避免忙等(busy-wait),在高并发情况下大幅降低 CPU 占用。:只能与配合使用:可与任意符合 BasicLockable 的锁类型配合。原创 2025-07-12 10:10:13 · 725 阅读 · 0 评论 -
C++ 标准库 <mutex>
mutex>提供了基于操作系统底层原生机制的互斥量(mutex)及相关锁管理工具,用于在线程间保护共享资源,避免数据竞争。所有类型都在命名空间std下,满足 RAII 风格,确保异常安全。原创 2025-07-12 10:08:32 · 615 阅读 · 0 评论 -
C++ 多线程库 <thread>
thread>是 C++ 标准库提供的跨平台线程支持,封装了操作系统原生线程接口。:线程类:当前线程相关操作:并发度查询public:// 构造// 不代表任何线程// 启动新线程,调用 std::invoke(f, args...)无参构造:创建“空”线程对象,不代表任何执行单元。函数对象构造:将可调用对象(函数指针、lambda、函数对象)和其参数拷贝/移动到新线程中执行。原创 2025-07-12 10:06:37 · 522 阅读 · 0 评论 -
C++ 标准库 <chrono>
chrono>引入于 C++11,提供了类型安全的时间度量体系,替代了传统 C 风格的<ctime>。:表示一段时间长度(例如 3.5 秒、100 毫秒):表示某一时刻,相对于特定时钟的纪元(epoch)配合若干时钟(Clock)类型,可进行高精度测时、定时、时间点运算、跨平台的线程睡眠等。Rep:底层数值类型(如int64_tdoublePeriod→ 毫秒→ 分钟std::nanomicromilliratio<1>kilo:决定了time_point的底层精度。原创 2025-07-12 10:04:55 · 914 阅读 · 0 评论 -
C++ 标准库 <ctime>
ctime>(等同于 C 语言的<time.h>)定义了表示与操作时间的基本类型和函数。主要用途包括获取当前时间、实现时间差计算、在日历(年/月/日、时分秒)与原始时间戳间转换,以及将时间格式化为字符串或从字符串解析时间等。底层依赖于平台 C 运行时,通常以秒为基本单位;注意各函数的线程安全性与时区影响。原创 2025-07-12 10:02:27 · 710 阅读 · 0 评论 -
C++ 标准库 <regex>
regex>提供了基于 ECMAScript、POSIX、基本/扩展 POSIX、awk、grep 五种语法的正则表达式引擎。(常用别名std::regex)——编译后的正则模式对象(别名)——匹配结果容器——迭代匹配子串或分割结果:整个目标串是否匹配:子串匹配:替换符合模式的子串。原创 2025-07-12 10:00:28 · 1028 阅读 · 0 评论 -
C++ 标准库 <string>
string>定义了模板类,以及常见的别名是可变长度、连续存储的字符序列,封装了 C 风格字符串的管理,同时提供了丰富的成员函数用于构造、访问、修改、查找、比较、格式化等操作。底层保证字符数据在内存上连续,可与 C 接口 (.c_str())、算法库(如)或字节 I/O 高效互操作。原创 2025-07-12 09:58:31 · 646 阅读 · 0 评论 -
C++ 标准库 <cmath>
cmath>C 标准库<math.h>的 C++ 版本)提供了一系列对标量(整型、浮点型)进行常见数学运算的函数。从 C++11 开始,新增了一些高精度或特殊用途的数学函数,并在<cmath>中以名称空间形式暴露。所有函数通常具有常数时间复杂度O1O(1)O1,但底层可能因实现和精度不同略有差异。原创 2025-07-12 09:56:31 · 640 阅读 · 0 评论 -
C++ 标准库 <valarray>
valarray>定义了一个专门用于数值计算的数组模板类,以及一系列针对该类型的高效元素级(element‑wise)运算工具。与通用容器(如)不同,valarray旨在支持对整组元素进行向量化操作(包括加减乘除、数学函数、切片、掩码、滚动等),在实现上便于编译器或底层库做 SIMD/多线程优化。原创 2025-07-12 09:54:24 · 865 阅读 · 0 评论 -
C++动态分配内存知识点详解
C++的动态内存分配是指在程序运行时根据需要分配内存,而不是在编译时固定。这种方法特别适合处理数组大小未知或需要持久化对象的场景。使用new可以分配内存,delete则用于释放,确保内存不会被浪费。动态内存分配(Dynamic Memory Allocation)是指在程序运行时(runtime)根据需要分配内存的过程。与静态内存分配(Static Memory Allocation)不同,静态内存分配是在编译时就确定内存大小,而动态内存分配允许程序在运行时根据实际需求分配和释放内存。原创 2025-07-09 10:19:24 · 969 阅读 · 0 评论 -
C++ 预处理器
C++是在编译之前对源代码进行处理的工具。预处理器指令通常以开头,不属于 C++ 语言本身,而是由编译器在正式编译之前处理的内容。原创 2025-07-09 10:07:28 · 351 阅读 · 0 评论 -
C++ 模板
C++ 的提供了一种在编译期对类型和常量进行参数化的机制,是实现泛型编程(Generic Programming)的核心。模板能够让同一份代码适用于多种类型,消除重复,同时还能借助特化和约束,实现高度灵活的库设计。下面分章介绍其主要形式与高级特性。原创 2025-07-09 10:05:40 · 522 阅读 · 0 评论 -
C++ 命名空间
在 C++ 中,namespace)用于将标识符(类型、函数、变量等)组织在逻辑区域内,避免因名字冲突而导致的二义性。下面从基本用法到高级特性分章说明。原创 2025-07-09 10:03:23 · 329 阅读 · 0 评论 -
C++ 动态内存
在性能敏感或需要特殊对齐、内存池策略时,可为容器或对象提供自定义分配器。自定义分配器需符合 Allocator 概念,包含allocatedeallocatevalue_type等。原创 2025-07-09 10:02:04 · 554 阅读 · 0 评论 -
C++ 异常处理
继承自。原创 2025-07-09 10:00:35 · 825 阅读 · 0 评论 -
C++ 文件和流
基于的内存流,用于将文本“格式化”到字符串,或从字符串中解析。自定义streambuf:通过继承可把流重定向到网络、压缩库等。原创 2025-07-09 09:58:56 · 783 阅读 · 0 评论 -
C++ 接口(抽象类)
在 C++ 中,“接口”通常通过****(Abstract Class)来实现——即只包含纯虚函数(pure virtual functions),不含数据成员或非虚实现。抽象类既定义了子类必须实现的行为契约,又能隐藏具体实现细节,实现面向接口编程(Programming to Interfaces)的思想。下面分几个方面详细介绍。原创 2025-07-09 09:57:13 · 793 阅读 · 0 评论 -
C++ 数据封装
在 C++ 中,数据封装(Encapsulation)是面向对象编程的基石之一,它通过将数据(成员变量)和对数据的操作(成员函数)组合在一起,并隐藏实现细节,只对外暴露必要的接口,从而达到以下目的:下面从语言机制和设计实践两方面详细阐述 C++ 中的数据封装。C++ 提供三种访问权限修饰符,用于控制成员对外的可见性:public 用于对外接口private 隐藏实现细节protected 在需要让派生类访问但不希望完全公开时使用2. 用 Getter/Setter 控制访问直接将成员设为 ,原创 2025-07-09 09:55:49 · 577 阅读 · 0 评论 -
C++ 运算符
C++ 中的运算符是用于执行特定数学或逻辑操作的符号,涵盖了算术、关系、逻辑、位运算、赋值和其他类型。它们可以操作一个或多个操作数,生成结果。运算符是告诉编译器执行特定操作的符号,C++ 继承了 C 语言的所有运算符,并新增了一些如重载运算符。它们可以操作一个或多个操作数,生成结果。研究表明,理解运算符的类型、优先级和结合性是编写高效 C++ 代码的关键。C++ 的运算符是编程中不可或缺的工具,用于执行各种操作。理解运算符的类型、优先级和用法是编写高效、正确的 C++ 代码的关键。原创 2025-07-07 18:55:13 · 690 阅读 · 0 评论 -
C++ 循环
循环是一种控制结构,允许程序重复执行某段代码,直到满足特定条件。for循环、while循环和do-while循环,以及支持嵌套循环和循环控制语句。研究表明,理解循环的语法和用法是编写高效 C++ 代码的关键。C++ 的循环是编程中不可或缺的部分,用于重复执行代码块。主要的循环类型包括forwhile和do-while,每种循环都有其特定的用途。嵌套循环和循环控制语句进一步增强了循环的灵活性。理解这些循环的语法和用法是编写高效 C++ 代码的关键。原创 2025-07-07 18:54:01 · 722 阅读 · 0 评论