Redis基础知识
基础 + 数据结构
https://blog.csdn.net/fhkk55/article/details/149009568?ops_request_misc=&request_id=&biz_id=102&utm_term=Redis%E5%85%AB%E8%82%A1&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-2-149009568.142v102pc_search_result_base1&spm=1018.2226.3001.4187
为什么用 Redis 作为 MySQL 的缓存? Redis
之所以被广泛使用,主要因为它具备「高性能」和「高并发」两大核心特性。
Redis 具备高性能
当用户首次访问 MySQL
中的某些数据时,由于需要从硬盘读取,速度较慢。如果将这些数据缓存在 Redis
中,后续访问时就能直接从内存获取。由于...
字面量后缀
字面量后缀(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++运算符优先级
C++ 运算符优先级表(从高到低)
以下是 C++
运算符的优先级列表,优先级高的运算符先计算。同一行的运算符具有相同的优先级,结合性决定了它们的计算顺序。
最高优先级
作用域解析 ::
从左到右
成员访问、下标、函数调用
成员访问 .和 ->
从左到右
数组下标 []
从左到右
函数调用 ()
从左到右
后置递增/递减 ++``--
从左到右
类型转换 type()``type{}
从左到右
const_cast, dynamic_cast, reinterpret_cast,
static_cast
从左到右
一元运算符
前置递增/递减 ++``--
从右到左
一元加/减 +``-
从右到左
逻辑非 !
从右到左
按位取反 ~
从右到左
取地址 &
从右到左
解引用 *
从右到左
sizeof
从右到左
new,...
C++中位运算常用函数
在 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内置函数
在 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的个数
在 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++判断质数
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) { ...