avatar
文章
82
标签
48
分类
16
主页
分类
标签
归档
链接
关于
宇宙尽头的森林
搜索
主页
分类
标签
归档
链接
关于

宇宙尽头的森林

C++ switch语句
发表于2026-01-19|C++
语法C++ 中 switch 语句的语法:switch(expression){ case constant-expression : statement(s); break; // 可选的 case constant-expression : statement(s); break; // 可选的 // 您可以有任意数量的 case 语句 default : // 可选的 statement(s);} switch 语句必须遵循下面的规则: switch 语句中的 expression 必须是一个整型或枚举类型,或者是一个 class 类型,其中 class 有一个单一的转换函数将其转换为整型或枚举类型。 在一个 switch 中可以有任意数量的 case 语句。每个 case 后跟一个要比较的值和一个冒号。 case 的 constant-expression 必须与 switch 中的变量具有相同的数据类型,且必须是一个常量或字面量。 当被测试的变量等于 case...
C++ string
发表于2026-01-19|C++
在 C++ 中,std::string 是一个非常常用的类,它提供了许多操作来处理字符串。std::string 作为 C++ 标准库的一部分,能够动态管理字符序列,并且比 C 风格的字符数组更加安全和方便。 以下是 std::string 的一些常用操作: 1. 创建和初始化字符串std::string s1; // 空字符串std::string s2 = "Hello"; // 直接赋值std::string s3("World"); // 构造函数方式std::string s4(s3); // 拷贝构造std::string s5(5, 'A'); // 5 个 'A' 组成的字符串 "AAAAA" 2. 访问字符串中的字符 使用 [] 或 at() 来访问或修改字符串中的字符。 std::string s = "Hello";char c1 = s[1]; // 'e'char c2 =...
C++ sort排序
发表于2026-01-19|C++
C++ 排序相关知识主要围绕 标准库排序函数、排序算法原理、自定义排序规则 和 实战应用 展开,以下是系统梳理: 一、核心排序函数:std::sort1. 函数原型(头文件 <algorithm>)// 默认升序排序template <class RandomIt>void sort(RandomIt first, RandomIt last);// 自定义比较函数排序template <class RandomIt, class Compare>void sort(RandomIt first, RandomIt last, Compare comp); 参数说明: first/last:随机访问迭代器(如数组指针、vector::iterator),指定排序范围 [first, last)(左闭右开)。 comp:二元比较函数/函数对象,定义排序规则(可选,默认 std::less<T> 升序)。 2. 基本用法示例#include <iostream>#include...
C++ max函数
发表于2026-01-19|C++
一、基础用法:两个值取最大值 1.包含头文件使用标准库的 std::max 需要包含 <algorithm> 头文件(C++11 及以上也可在 <utility> 等头文件中找到定义,但但建议 <algorithm> 最通用)。 2.语法std::max(a, b); // 返回 a 和 b 中的最大值 3.示例#include <iostream>#include <algorithm> // 包含std::maxusing namespace std;int main() { int a = 10, b = 20; cout << max(a, b) << endl; // 输出 20 double c = 3.14, d = 2.71; cout << max(c, d) << endl; // 输出 3.14 char e = 'a', f = 'z'; cout << max(e, f) <<...
C++ cmath库
发表于2026-01-19|C++
在 C++ 中,除了可以创建各种函数,还包含了各种有用的函数供您使用。这些函数写在标准 C 和 C++ 库中,叫做内置函数。您可以在程序中引用这些函数。 C++ 内置了丰富的数学函数,可对各种数字进行运算。下表列出了 C++ 中一些有用的内置的数学函数。 为了利用这些函数,您需要引用数学头文件 <cmath>。 序号 函数 & 描述 1 double cos(double);该函数返回弧度角(double 型)的余弦。 2 double sin(double);该函数返回弧度角(double 型)的正弦。 3 double tan(double);该函数返回弧度角(double 型)的正切。 4 double log(double);该函数返回参数的自然对数。 5 double pow(double, double);假设第一个参数为 x,第二个参数为 y,则该函数返回 x 的 y 次方。 6 double hypot(double,...
C++ 字符串与数字的转换
发表于2026-01-19|C++
一、整数与字符串的转换1. 整数转字符串 方法:使用 std::to_string(C++11 及以上支持)直接将整数类型(int、long、long long 等)转换为 std::string。#include <string>#include <iostream>using namespace std;int main() { int num = 123; string s = to_string(num); // s = "123" cout << s << endl; return 0;} 2. 字符串转整数 方法1:使用 std::stoi、std::stol、std::stoll(C++11 及以上支持)分别用于转换为 int、long、long long,若字符串无法转换或超出范围,会抛出异常。#include <string>#include <iostream>using namespace std;int main() { string s =...
C++ 优先队列priority_queue
发表于2026-01-19|C++
priority_queuepriority_queue 是 C++ 标准库中的一个容器适配器,定义在头文件 <queue> 中。它提供了一种优先队列的数据结构,类似于堆,能够根据元素的优先级来组织数据。默认情况下,它是一个最大堆,即最大的元素总是位于队首。你可以通过自定义比较函数实现最小堆。 一.特性最大堆:默认情况下,priority_queue 是最大堆,队首元素是最大值。动态大小:可以动态调整队列大小。不支持随机访问:不像 vector 或 deque,你无法通过索引访问 priority_queue 中的元素。 二.模板定义template <class T, class Container = std::vector<T>, class Compare = std::less<typename Container::value_type>>class priority_queue; T:存储的元素类型。Container:用于存储元素的底层容器,默认是 std::vector。Compare:比较函数对象,默认是...
KMP算法
发表于2026-01-19|数据结构与算法
KMP 算法(Knuth-Morris-Pratt Algorithm) 是计算机科学中一种极其高效的字符串匹配算法。 它的核心威力在于:当字符串匹配发生“失配”时,它不回溯主串的指针,而是利用已经匹配过的部分信息,将模式串(Pattern)尽可能多地向右滑动。 一. 背景:为什么需要 KMP?假设我们要在主串 S 中查找模式串 P。 1.1 暴力匹配法如果不使用技巧,我们的做法是: S[0] 和 P[0] 对比,如果一样,比下一个;如果不一样,S 指针回溯到 1,P 指针回溯到 0,重新开始。 痛点:S 指针会不断回退。 效率:最坏时间复杂度为 。 1.2 KMP 的改进KMP 算法极其聪明,它发现:在刚刚匹配过的部分中,其实蕴含了大量信息。我们不需要把 S 指针回退,只需要把 P 串向右滑动到“合适”的位置即可。时间复杂度:(N 是主串长度,M 是模式串长度)。 二. 核心概念:前缀、后缀与最长公共长度要理解 KMP,必须先理解三个概念,这是 KMP 的灵魂。 以字符串 "ABABCA" 为例: 前缀...
图论
发表于2026-01-19|数据结构与算法
图论核心知识点笔记一、图的存储方式图的存储核心是记录“顶点”与“边”的关联关系,需根据图的密度(边数/顶点数²)选择合适方式: 1. 邻接矩阵 实现原理:用二维数组 graph[i][j] 表示顶点间关系 无权图:graph[i][j] = 1 表示顶点i与j有边,0 表示无边; 加权图:graph[i][j] = 边的权重(无边时设为无穷大); 有向图:graph[i][j] 仅表示“i→j”的边,方向不同值独立。 优缺点:✅ 优点:查询两点是否连通、修改边权效率高(O(1));❌ 缺点:空间复杂度O(n²)(n为顶点数),稀疏图浪费空间。 适用场景:稠密图(边数接近n²)、需频繁判断两点连通性的场景。 2. 邻接表 实现原理:用“数组+链表/vector”存储,数组下标对应顶点,每个元素存储该顶点的所有邻接顶点(及边权)。例:vector<vector<int>> adj(n),adj[i] 存储顶点i的所有邻接顶点编号。 优缺点:✅ 优点:空间复杂度O(n+m)(m为边数),稀疏图高效;遍历某顶点所有邻接边方便;❌...
数据结构与算法总述
发表于2026-01-19|数据结构与算法
常见的数据结构 栈(Stack):栈是一种特殊的线性表,它只能在一个表的一个固定端进行数据结点的插入和删除操作。 队列(Queue):队列和栈类似,也是一种特殊的线性表。和栈不同的是,队列只允许在表的一端进行插入操作,而在另一端进行删除操作。 数组(Array):数组是一种聚合数据类型,它是将具有相同类型的若干变量有序地组织在一起的集合。 链表(Linked List):链表是一种数据元素按照链式存储结构进行存储的数据结构,这种存储结构具有在物理上存在非连续的特点。 树(Tree):树是典型的非线性结构,它是包括,2 个结点的有穷集合 K。 图(Graph):图是另一种非线性数据结构。在图结构中,数据结点一般称为顶点,而边是顶点的有序偶对。 堆(Heap):堆是一种特殊的树形数据结构,一般讨论的堆都是二叉堆。 散列表(Hash table):散列表源自于散列函数(Hash...
1…345…9
avatar
Flora
文章
82
标签
48
分类
16
关注我
公告
一起成为健康舒适丰富的人
最新文章
第六章 链路层和局域网2026-01-26
第五章 网络层:控制平面2026-01-26
第四章 网络层:数据平面2026-01-26
第三章 运输层2026-01-26
第二章 应用层2026-01-26
分类
  • AI5
  • C++31
  • Hexo1
  • IntelliJ IDEA2
  • Opencv1
  • github1
    • 编程1
  • 力扣16
标签
个人成长 代码 图像处理 摩尔投票法 编程 堆 二分查找 独树不成林 笔记 感知机 KMP 大模型 github Hexo 人工智能 技巧 播客 哈希 服务器 数组 Cmath 并查集 力扣 纵横四海 链表 动态规划 VSCode 运算符 数据结构与算法 自习室 STUDYROMM 互联网 字符串 时间 树 贪心 神经网络 神经 AI 排序算法 bug
归档
  • 一月 2026 51
  • 九月 2025 1
  • 七月 2025 4
  • 五月 2025 2
  • 四月 2025 13
  • 三月 2025 6
  • 二月 2025 5
网站信息
文章数目 :
82
本站访客数 :
本站总浏览量 :
最后更新时间 :
©2025 - 2026 By Flora
框架 Hexo 7.3.0|主题 Butterfly 5.3.3
搜索
数据加载中