avatar
文章
38
标签
17
分类
6
首页
时间轴
标签
分类
关于
首页
时间轴
标签
分类
关于

qyhome

字面量后缀
发表于2025-07-20
字面量后缀(Literal Suffix) 或称为 字面量修饰符(Literal Modifier)。 详细说明: 作用: 用于指定字面量的具体类型(如 int、long、unsigned等)。 影响编译器如何解释该字面量的存储方式和取值范围。 常见字面量后缀: 后缀 类型 示例 U unsigned int 42U L long 123L UL unsigned long 100UL LL long long 999LL ULL unsigned long long 0xFFFFULL F float 3.14F L long double 3.14L C++11 新增的字面量后缀(用户自定义字面量): C++11 允许用户自定义字面量后缀(User-defined Literals),例如: constexpr long double operator"" _km(long double...
C++运算符优先级
发表于2025-07-20
C++ 运算符优先级表(从高到低) 以下是 C++ 运算符的优先级列表,优先级高的运算符先计算。同一行的运算符具有相同的优先级,结合性决定了它们的计算顺序。 最高优先级 作用域解析 :: 从左到右 成员访问、下标、函数调用 成员访问 .和 -> 从左到右 数组下标 [] 从左到右 函数调用 () 从左到右 后置递增/递减 ++``-- 从左到右 类型转换 type()``type{} 从左到右 const_cast, dynamic_cast, reinterpret_cast, static_cast 从左到右 一元运算符 前置递增/递减 ++``-- 从右到左 一元加/减 +``- 从右到左 逻辑非 ! 从右到左 按位取反 ~ 从右到左 取地址 & 从右到左 解引用 * 从右到左 sizeof 从右到左 new,...
C++中位运算常用函数
发表于2025-07-18
在 C++ 中,位运算(Bit Manipulation)常用于高效处理二进制数据、优化计算或实现特定算法。以下是常用的位运算函数和操作: 1. 基本位运算符 运算符 含义 示例 & 按位与 a & b \| 按位或 a \| b ^ 按位异或 a ^ b ~ 按位取反 ~a << 左移(乘以 2ⁿ) a << n >> 右移(除以 2ⁿ) a >> n 2. C++20 <bit>头文件提供的位操作函数 C++20 引入了 <bit>头文件,提供了一些高效的位运算函数: (1) std::popcount- 计算 1 的个数 #include <bit>unsigned int count = std::popcount(0b10101010); // 返回 4 (2) std::has_single_bit- 检查是否是 2...
Linux内置函数
发表于2025-07-18
在 Linux(或更准确地说,在 GCC/Clang 编译器)中,提供了一些内置函数(Built-in Functions),用于高效执行底层操作(如位运算、原子操作、CPU 指令优化等)。这些函数通常直接映射到特定的 CPU 指令,性能极高。 1. 位操作相关内置函数 (1) 计算 1的个数(Population Count) int __builtin_popcount(unsigned int x); // 计算 32 位整数的 1 的个数int __builtin_popcountll(unsigned long long x); // 计算 64 位整数的 1 的个数 示例: #include <iostream>int main() { int num = 0b1101; // 二进制 1101(十进制 13) std::cout << __builtin_popcount(num); // 输出 3 return 0;} 底层指令:POPCNT(现代 CPU...
C++计算int中1的个数
发表于2025-07-18
在 C++ 中,计算一个 int整数的二进制表示中 1的个数(也称为 Population Count 或 Hamming Weight)有多种方法。以下是几种常见的方法: 方法 1:逐位检查(循环移位法) int countOnes(int num) { int count = 0; for (int i = 0; i < 32; ++i) { if (num & (1 << i)) { count++; } } return count;} 说明: 遍历整数的每一位(共 32 位)。 使用 1 << i生成掩码,检查该位是否为 1。 优点:简单直观,适用于所有整数。 缺点:循环次数固定为 32 次,效率较低。 方法 2:Brian Kernighan 算法(优化版) int countOnes(int num) { int...
C++判断质数
发表于2025-07-18
C++ 判断质数的实现与优化 质数是指大于1的自然数,除了1和它本身外,不能被其他自然数整除的数。以下是几种C++判断质数的方法及其优化方案。 基础实现方法 1. 简单判断法(时间复杂度O(n)) bool isPrime(int n) { if (n <= 1) return false; for (int i = 2; i < n; i++) { if (n % i == 0) { return false; } } return true;} 2. 优化判断法(时间复杂度O(√n)) bool isPrime(int n) { if (n <= 1) return false; for (int i = 2; i * i <= n; i++) { if (n % i == 0) { ...
常见算法的空间复杂度和时间复杂度
发表于2025-07-18|leetcode|C++•leetcode
以下是常见算法的时间复杂度和空间复杂度总结,按算法类型分类,并附典型示例: 一、排序算法 算法 平均时间复杂度 最坏时间复杂度 空间复杂度 是否稳定 冒泡排序 O(n²) O(n²) O(1) 是 选择排序 O(n²) O(n²) O(1) 否 插入排序 O(n²) O(n²) O(1) 是 快速排序 O(n log n) O(n²) O(log n) 否 归并排序 O(n log n) O(n log n) O(n) 是 堆排序 O(n log n) O(n log n) O(1) 否 计数排序 O(n + k) O(n + k) O(n + k) 是 桶排序 O(n + k) O(n²) O(n + k) 是 基数排序 O(n × k) O(n × k) O(n +...
C++20的ranges::命名空间
发表于2025-07-18|C++基础知识|C++•stl•容器•数据结构
在 C++20 中,<algorithm>头文件中的许多算法被引入了 std::ranges命名空间,这些算法支持范围(Range)概念,提供了更现代、更安全的接口。以下是 C++20 std::ranges中主要的算法分类和示例: 1. 不修改序列的算法(Non-modifying) 查找类: ranges::find/ ranges::find_if/ ranges::find_if_not ranges::find_first_of ranges::adjacent_find ranges::search/ ranges::search_n ranges::find_end ranges::binary_search(需范围有序) ranges::lower_bound/ ranges::upper_bound/ ranges::equal_range(需范围有序) 计数类: ranges::count/...
Linux基本命令
发表于2025-07-17|计算机基础知识|计算机基础知识•操作系统
1. 查CPU和IP命令 查CPU信息: lscpu # 查看CPU架构信息cat /proc/cpuinfo # 详细CPU信息 查IP地址: ip a # 推荐(新版)ifconfig # 旧版(需安装net-tools)hostname -I # 仅显示IP 2. 常用Linux命令分类 文件操作:ls, cp, mv, rm, chmod 文本处理:cat, grep, sed, awk, head/tail 系统监控:top, ps, free, df, netstat 权限管理:chown, chmod, sudo 网络工具:ping, curl, wget, ssh 3. cp和chmod 777含义 cp:复制文件/目录 cp file1 file2 # 复制文件cp -r dir1 dir2 # 递归复制目录 chmod...
C++求最大公约数
发表于2025-06-29|计算机基础知识|C++•数学公式
C++ 求最大公约数(GCD)的方法详解 最大公约数(Greatest Common Divisor,GCD)是指能够整除两个或多个整数的最大正整数。以下是几种在C++中求最大公约数的方法: 1. 辗转相除法(欧几里得算法) 这是最经典高效的求 GCD 算法,基于以下原理: \[ gcd(a, b) = gcd(b, a \% b) \] #include <iostream>// 递归实现int gcd_recursive(int a, int b) { if (b == 0) return a; return gcd_recursive(b, a % b);}// 迭代实现int gcd_iterative(int a, int b) { while (b != 0) { int temp = b; b = a % b; a = temp; } return a;}int main() { ...
1234
avatar
QY
学习记录
文章
38
标签
17
分类
6
Follow Me
最新文章
C++滑动窗口算法模板2025-08-20
Pimpl模式2025-08-14
CPP顺序型容器-list链表2025-08-13
操作系统基础知识2025-08-13
计算机网络基础知识2025-08-13
分类
  • C++基础知识10
  • leetcode3
  • 个人博客1
  • 数据结构与算法1
  • 计算机基础知识5
  • 问题记录4
标签
C++stl容器数据结构排序算法leetcode计算机基础知识数学公式HexoMarkdownLatex操作系统计算机网络Git阿里云OSSpicGotypora
归档
  • 八月 2025 6
  • 七月 2025 13
  • 六月 2025 12
  • 五月 2025 7
网站信息
文章数目 :
38
本站总字数 :
41.9k
本站访客数 :
本站总浏览量 :
最后更新时间 :
©2025 By QY
框架 Hexo 7.3.0|主题 Butterfly 5.3.5
赣ICP备2025062752号-1