随笔分类 -  C/C++

摘要:C++ Lambda 表达式 C++ 的 Lambda 表达式 是一种轻量级的 匿名函数,用于临时定义函数对象,常用于算法、回调、并发、事件响应等场景。 Lambda 表达式是定义内联函数的简洁方式,允许捕获外部变量,并在需要函数对象的地方直接使用。 一、基本语法 [capture](paramet 阅读全文
posted @ 2025-07-02 17:47 aixueforever 阅读(17) 评论(0) 推荐(0)
摘要:在 C++ 标准库中,stream(流)是处理输入输出(I/O)的核心抽象,分为输入流(istream)、输出流(ostream)、输入输出流(iostream)等多种类型,且支持面向不同设备(文件、字符串、控制台等)的具体流类型。 Stream 类型 类别 主要类型及说明 头文件 输入流 std: 阅读全文
posted @ 2025-07-01 17:07 aixueforever 阅读(241) 评论(0) 推荐(1)
摘要:C++ STL(Standard Template Library)中主要提供了三大类通用容器,用于存储和管理不同类型和结构的数据。它们分别是: STL 容器总览 容器类别 容器 说明 序列式容器 (Sequence Containers) vector, deque, list, forward_ 阅读全文
posted @ 2025-06-24 21:56 aixueforever 阅读(116) 评论(0) 推荐(0)
摘要:迭代器 C++ STL(Standard Template Library,标准模板库)中迭代器与常用算法是泛型编程的核心组成部分。它们配合使用,可以对容器进行高效、统一的操作。下面是对它们的系统性总结。 一、什么是迭代器(Iterator) 迭代器是 STL 的核心,用于访问容器中的元素。迭代器本 阅读全文
posted @ 2025-06-23 19:22 aixueforever 阅读(316) 评论(0) 推荐(1)
摘要:C++ 异常处理是通过 try、catch 和 throw 关键字来实现的,主要用于在程序运行过程中出现错误时进行错误捕获与处理,从而提高程序的健壮性和可维护性。 一、基本语法结构 try { // 可能抛出异常的代码 throw 异常对象; } catch (异常类型1 参数名) { // 对异常 阅读全文
posted @ 2025-06-20 16:52 aixueforever 阅读(28) 评论(0) 推荐(0)
摘要:-- 整体流程 C++ 源文件 (.cpp) ↓ 预处理(展开头文件、宏替换等) 预处理后的代码 (.i) ↓ 编译(编译器) 汇编代码 (.s) ↓ 汇编(汇编器) 目标文件 (.o / .obj) ↓ 链接(连接器) 最终可执行文件(如 a.out / exe) (一)预处理 C++ 的 预处理 阅读全文
posted @ 2025-06-20 11:21 aixueforever 阅读(213) 评论(0) 推荐(1)
摘要:一、什么是模板(Template) 模板是 C++ 支持的泛型编程机制,可以用来编写与类型无关的代码,实现代码的复用。编译器根据调用时提供的类型参数生成对应版本代码,称为模板实例化。 二、函数模板(Function Template) 模板函数在编译时根据传入参数类型自动生成对应函数代码(实例化), 阅读全文
posted @ 2025-06-17 00:02 aixueforever 阅读(72) 评论(0) 推荐(0)
摘要:一、函数定义 在 C++ 中,函数是组织代码逻辑的基本单元,用于实现模块化、复用、结构清晰的程序设计。 1、函数的基本结构 返回类型 函数名(参数列表) { // 函数体 return 值; // 可选,视返回类型而定 } 声明(Declaration): 告诉编译器函数存在,通常放在头文件中: i 阅读全文
posted @ 2025-06-16 14:49 aixueforever 阅读(230) 评论(0) 推荐(1)
摘要:static关键字 在 C++ 中,static 变量的生命周期贯穿整个程序的执行过程。这是 static 最核心的特性之一。 一句话总结: static 变量只初始化一次,存在于整个程序运行期间,直到程序结束时被销毁。 详细解释:不同作用域中的 static 变量 1. 函数内的 static 变 阅读全文
posted @ 2025-06-15 17:21 aixueforever 阅读(59) 评论(0) 推荐(2)
摘要:C语言字符串 C 语言中的 “string” 并不是一种内建类型,而是一种以 '\0'(null 字符)结尾的字符数组,用来表示字符串。C 语言的字符串处理完全是基于字符数组和标准库函数的组合实现的,理解起来要靠对内存、指针和字符操作的深入掌握。 一、C语言字符串的本质 定义 C 语言的字符串是 一 阅读全文
posted @ 2025-06-14 23:02 aixueforever 阅读(68) 评论(0) 推荐(1)
摘要:右左法则不是C标准里面的内容,它是从C标准的声明规定中归纳出来的方法。C标准的声明规则,是用来解决如何创建声明的,而右左法则是用来解决如何辩识一个声明的,两者可以说是相反的。 右左法则原文: The right-left rule:Start reading the declaration from 阅读全文
posted @ 2025-06-14 15:24 aixueforever 阅读(37) 评论(0) 推荐(1)
摘要:在 C++ 中,智能指针(smart pointers)是用于管理动态分配对象生命周期的类模板。它们旨在帮助开发者自动管理内存,避免常见的内存泄漏问题,并简化资源管理。C++ 标准库提供了三种主要类型的智能指针:std::unique_ptr、std::shared_ptr 和 std::weak_ 阅读全文
posted @ 2025-06-14 13:27 aixueforever 阅读(194) 评论(0) 推荐(2)
摘要:在典型的 C++ 程序执行过程中,内存被大致划分为以下 4 个主要区域: C++ 程序运行时的 4 个内存区域 区域 说明 生命周期 增长方向 代码区 编译后的程序指令(程序的机器指令) 程序整个运行期间 固定,靠近低地址,通常只读、共享 全局/静态区 全局变量、静态变量、常量 程序整个运行期间 固 阅读全文
posted @ 2025-06-13 17:09 aixueforever 阅读(40) 评论(0) 推荐(0)
摘要:CMAKE学习笔记【Part1】 (零) 变量 一、基本概念 CMake 中的变量是 字符串类型(或列表),没有内置的数据结构如数组、字典等。变量的作用类似于 shell 脚本中的环境变量,但也有自己的作用域机制。 常见预定义变量(举例) PROJECT_NAME:当前项目的名称。 CMAKE_CU 阅读全文
posted @ 2025-06-08 23:55 aixueforever 阅读(243) 评论(0) 推荐(2)