avatar
文章
41
标签
16
分类
6
首页
时间轴
标签
分类
关于
首页
时间轴
标签
分类
关于

qyhome

CPP生成随机数
发表于2025-08-27
1. 传统方法:rand()和 srand()(C语言风格,不推荐在新项目中使用) 工作原理: rand(): 返回一个伪随机数,范围通常是 0到 RAND_MAX(一个常量,如 32767)。 srand(seed): 设置随机数种子。如果使用相同的种子,rand()会产生相同的序列。 缺点: 低质量:生成的随机数序列质量通常不高。 范围固定:范围固定为 [0, RAND_MAX],需要手动取模来调整范围,但这会引入偏差。 全局状态:使用全局状态,可能影响程序其他部分。 性能:在某些实现中性能不佳。 示例: #include <iostream>#include <cstdlib> // 需要包含的头文件#include <ctime>int main() { // 用当前时间作为种子 std::srand(std::time(nullptr)); // 生成一个 0 到 RAND_MAX 之间的随机数 int random_num = std::rand();...
CMake调库
发表于2025-08-26
您说得对!让我重新整理,将同类型的库合并介绍,让结构更清晰。 CMake中的库类型完整分类 1. Header-Only库(纯头文件库) 特点 所有代码都在头文件中 编译时直接内联 不需要链接库文件 项目中的使用 # 设置包含路径include_directories(external/cpp-httplib) # httplib.hinclude_directories(external/websocketpp) # websocketpp头文件include_directories(external/json-develop/include) # json.hpp# 在源文件中直接包含#include "httplib.h"#include <websocketpp/...>#include <nlohmann/json.hpp> 其他Header-Only库示例 # 更多Header-Only库include_directories(external/spdlog) ...
stoi的使用方法
发表于2025-08-23
stoi是 C++ 中用于将字符串转换为整数的函数。以下是详细的使用方法: 基本语法 #include <string>using namespace std;int stoi(const string& str, size_t* pos = 0, int base = 10); 1. 基本用法 #include <iostream>#include <string>using namespace std;int main() { // 最简单的用法 string numStr = "123"; int num = stoi(numStr); cout << num << endl; // 输出: 123 // 带负号的数字 string negative = "-456"; int negNum = stoi(negative); cout << negNum <<...
数论
发表于2025-08-20
一、判断质数 方法 1:试除法 时间复杂度:O(√n) 原理:若 n不是质数,则必有因数 ≤ √n。 bool is_prime(int n) { for (int i = 2; i * i <= n; i++) { if (n % i == 0) { return false; } } return n >= 2; // 1 不是质数} 二、最大公约数(GCD) 方法 1:欧几里得算法(递归) 时间复杂度:O(log min(a, b)) 原理:gcd(a, b) = gcd(b, a % b) int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b);} 方法 2:迭代版(避免递归栈溢出) int gcd(int a, int b) { while (b != 0) ...
C++滑动窗口算法模板
发表于2025-08-20
C++ 滑动窗口算法模板 1. 固定窗口大小 int fixedSlidingWindow(vector<int>& nums, int k) { int n = nums.size(); int sum = 0; // 计算初始窗口 for (int i = 0; i < k; i++) { sum += nums[i]; } int maxSum = sum; // 滑动窗口 for (int i = k; i < n; i++) { sum += nums[i] - nums[i - k]; // 加新元素,减旧元素 maxSum = max(maxSum, sum); } return maxSum;} 2. 可变窗口大小(求最大窗口) 3.无重复字符的最长子串 class Solution {public: ...
Pimpl模式
发表于2025-08-14
Pimpl(Pointer to Implementation)模式简介 Pimpl(Pointer to Implementation),也称为 “Opaque Pointer”(不透明指针) 或 “Compilation Firewall”(编译防火墙),是一种 C++ 设计模式,用于隐藏类的实现细节,从而减少编译依赖、提高编译速度,并增强接口的稳定性。 1. Pimpl 的核心思想 将类的实现细节(私有成员)移动到一个单独的类(Impl)中 在公共接口类中仅保留一个指向实现类的指针 公共头文件(.h)仅包含声明,不暴露私有成员 传统类 vs. Pimpl 类 传统方式(暴露私有成员) // Widget.h#include <string>#include <vector>class Widget {public: Widget(); void doSomething();private: std::string name; std::vector<int>...
CPP顺序型容器-list链表
发表于2025-08-13|C++基础知识|C++•容器•stl•数据结构
std::list是 C++ 标准库中的双向链表容器,支持高效的元素插入和删除操作。以下是 std::list的完整 API 参考。 1. 构造函数 方法 描述 时间复杂度 list<T> l 创建空 list O(1) list<T> l(count) 创建包含 count 个默认构造元素的 list O(n) list<T> l(count, value) 创建包含 count 个 value 的 list O(n) list<T> l(begin, end) 用迭代器范围初始化 O(n) list<T> l(initializer_list) 用初始化列表初始化 O(n) list<T> l(other_list) 拷贝构造函数 O(n) list<T> l(move(other_list)) 移动构造函数 O(1) 2....
操作系统基础知识
发表于2025-08-13
线程同步方式有哪些? 线程同步机制是指在多线程编程中,为了保证线程之间的互不干扰,而采用的一种机制。常见的线程同步机制有以下几种: 互斥锁:互斥锁是最常见的线程同步机制。它允许只有一个线程同时访问被保护的临界区(共享资源) 条件变量:条件变量用于线程间通信,允许一个线程等待某个条件满足,而其他线程可以发出信号通知等待线程。通常与互斥锁一起使用。 读写锁: 读写锁允许多个线程同时读取共享资源,但只允许一个线程写入资源。 信号量:用于控制多个线程对共享资源进行访问的工具。 1. 互斥锁 (Mutex - Mutual Exclusion) 原理:像一把钥匙,只允许一个线程进入被保护的代码段(临界区)。其他线程必须等待该线程释放锁。 类比:一个单人的卫生间,一个人进去后从里面锁门,其他人只能在门口等待。 示例(C++ std::mutex): #include <iostream>#include <thread>#include <mutex>std::mutex mtx; // 全局互斥锁int...
计算机网络基础知识
发表于2025-08-13
什么是MIME类型? MIME:Multipurpose Internet Mail Extensions 作用:告诉浏览器如何处理接收到的内容 常见的MIME类型 // HTML文档res.set_content(content, "text/html");// CSS样式表res.set_content(css_content, "text/css");// JavaScript文件res.set_content(js_content, "application/javascript");// 图片文件res.set_content(image_data, "image/png");res.set_content(image_data, "image/jpeg");// JSON数据res.set_content(json_data, "application/json");
C++基础知识
发表于2025-08-12|计算机基础知识|C++•计算机基础知识
...
12…5
avatar
QY
学习记录
文章
41
标签
16
分类
6
Follow Me
最新文章
CPP生成随机数2025-08-27
CMake调库2025-08-26
stoi的使用方法2025-08-23
数论2025-08-20
C++滑动窗口算法模板2025-08-20
分类
  • C++基础知识10
  • leetcode3
  • 个人博客1
  • 数据结构与算法1
  • 计算机基础知识4
  • 问题记录4
标签
C++容器stl数据结构计算机基础知识排序算法leetcode数学公式HexoMarkdownLatex操作系统Git阿里云OSSpicGotypora
归档
  • 八月 2025 10
  • 七月 2025 13
  • 六月 2025 11
  • 五月 2025 7
网站信息
文章数目 :
41
本站总字数 :
46.4k
本站访客数 :
本站总浏览量 :
最后更新时间 :
©2025 By QY
框架 Hexo 7.3.0|主题 Butterfly 5.3.5
赣ICP备2025062752号-1