数据结构
[TOC] 算法时间复杂度 在进行算法分析时,语句总的执行次数 $T(n)$ 是关于问题规模 n 的函数,进而分析 $T(n)$ 随 n 的变化情况并确定 $T(n)$ 的数量级。1 算法的时间复杂度,也就是算法的时间量度,记作 $T(n)=O(f(n))$ 。它表示随问题规模 n 的增大,算法执行时间的增长率和 $f(n)$ 的增长率相同,称作算法的渐进时间复杂度,简称为时间复杂度。...
[TOC] 算法时间复杂度 在进行算法分析时,语句总的执行次数 $T(n)$ 是关于问题规模 n 的函数,进而分析 $T(n)$ 随 n 的变化情况并确定 $T(n)$ 的数量级。1 算法的时间复杂度,也就是算法的时间量度,记作 $T(n)=O(f(n))$ 。它表示随问题规模 n 的增大,算法执行时间的增长率和 $f(n)$ 的增长率相同,称作算法的渐进时间复杂度,简称为时间复杂度。...
[TOC] 1. 标准输入输出流 // 2024年2月6日-HSB 待补充 2. 文件读写 参考文章 【引入】1234567 C++文件操作实战:创建、写入、读取、修改文件一应俱全 ↩︎ 深入学习c++,处理数据流 ↩︎ C++...
[TOC] 动态库和静态库 动态链接库(DLL,Dynamic Link Library)和静态链接库(通常为 .lib 或 .a 文件)是两种不同类型的代码库,它们在程序编译和运行时的行为上有着显著的区别: 链接时机: 动态链接库:在程序运行时被加载和链接。这意味着程序在编译时并不包含这些库的代码,而是在运行时从外部文件中加载。 静态链接库:在...
[TOC] C++11 C++20 参考1234 来源:Chatgpt ↩︎ 深度解析C++11新规范:引领现代编程潮流的30大特性 ↩︎ 探索 C++20:为什么我们应该拥抱这个时代? ↩︎ ...
[TOC] 参考文章[^1]12 C++中使用宏定义一个函数:灵活性与风险并存 ↩︎ C语言#define的妙用 ↩︎
[TOC] dynamic_cast 动态转换(dynamic_cast)通常用于处理继承关系中的类型转换,用于运行时进行多态类型指针的转换。主要用于将父类指针或引用类型转换为子类指针或引用。在转换过程中会进行类型检查,若两类型非父子关系,则会返回NULL或报错。1 Base* basePtr = new Derived(); Derived* derivedPtr = dynamic...
[TOC] 类型萃取1 类型萃取(Type Traits)是 C++11 引入的一组模板,用于在编译时获取类型的属性,就是把类型提取出来。 以一部分函数和关键词为例: (1) std::is_same_v<T1, T2> 判断 T1 和 T2 是否是同一种类型。 (2) std::is_integral<T>::value 判断 T 是否为整型。 C+...
[TOC] 右左法则 1)从最里层圆括号中未定义的标识符看起。1 2)首先往右看,再往左看。 3)遇到圆括号或方括号时可以确定部分类型,并调转方向。 4)重复2,3步骤直到阅读结束。 参考文章234 c 指针阅读技巧-右左法则 ↩︎ 来源:ChatGPT ↩︎ ...
[TOC] 1. 仿函数 在 C++ 中,仿函数(也称为函数对象)通过重载 operator()的实例,使一个类的实例表现得像一个函数。1 2. 仿函数的优势 状态保持:与普通函数相比,仿函数可以保持状态。你可以在类中定义成员变量来存储信息,并在operator()调用中使用这些信息。 灵活性:由于它们是类的实例,仿函数可以拥有构造函数和析构函数,...
[TOC] 匿名函数(lamda函数) 一个lamda函数的格式为: [capture](parameters)->return_type{/*...*/}; [capture]: 捕获列表(Capture List),决定了函数在定义时能够访问和使用哪些外部变量。1 []:空捕获列表,表示 lambda 函数不捕获任何外部变量,只能使用函数内部的...