会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
sahara
博客园
首页
新随笔
联系
订阅
管理
2024年2月24日
volatile及内存屏障理解总结
摘要: volatile 关键字是一种类型修饰符,用它声明的类型变量表示可以被某些未知的因素更改。volatile 提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有 volatile 关键字,则编译器可能优化读取和存储,可
阅读全文
posted @ 2024-02-24 18:13 sahara-随笔
阅读(699)
评论(0)
推荐(0)
2023年8月20日
C++ 变量初始化总结
摘要: 堆空间,new操作初始化 1、对于有自己写构造函数的类,不论类型名后面有没有括号()或者数组[],都用构造函数进行初始化,如果构造函数delete,则编译报错; 2、如果没有构造函数,则不加括号的new只分配内存空间,不进行内存的初始化, 3、而加了括号()的new会在分配内存的同时初始化为0。 栈
阅读全文
posted @ 2023-08-20 15:52 sahara-随笔
阅读(34)
评论(0)
推荐(0)
线程安全和可重入函数
摘要: malloc 是线程安全的,但是不可重入。malloc 在堆上分配内存,而其内部为了效率,维护了一个堆块链表,这个链表是全局静态变量,导致它不是可重入的。 socket()是可重入的,它底层使用系统调用。 内核在执行系统调用时,处于进程上下文,即引发系统调用的那个进程。在进程上下文中,内核可以休眠并
阅读全文
posted @ 2023-08-20 10:43 sahara-随笔
阅读(122)
评论(0)
推荐(0)
2023年7月23日
C/C++低级语法错误
摘要: strlen和sizeof表示不同的含义。 strlen表示的是一个计数器的工作,它是从内存的某个位置(这里的位置可以是字符串开头,中间某个位置,也可以是某个不确定的内存区域)开始扫描,然后直至碰到第一个字符串结束符'\0'为止,然后返回计数器值。 sizeof在C语言中是用于判断数据类型或者表达式
阅读全文
posted @ 2023-07-23 15:41 sahara-随笔
阅读(32)
评论(0)
推荐(0)
2023年7月22日
Postgresql日志归档、复制槽概念
摘要: 问题 1 数据日志什么时候归档 ? 其实这个问题是比较需要明白的,到底日志在正常的情况下,什么时候才能归档, 到底条件是什么,要开启 postgresql 的日志的归档的前提条件,主要需要配置 1 wal_level = replica (或 logical) 2 archive_mode = on
阅读全文
posted @ 2023-07-22 14:09 sahara-随笔
阅读(880)
评论(0)
推荐(0)
2023年7月14日
算法——前缀和 + 两数相加、相减
摘要: 求数组中,连续区间的大小,可使用前缀和相减得到。 进阶变形 若想得到区间大小等于target,暴力枚举 前缀和相减。复杂度O(n^2) 优化算法:将每次求得的前缀和放入hashMap中,S[j] - S[i] == target,(j>i) 求出S[j]后,判断hashMap中是否存在 S[i] =
阅读全文
posted @ 2023-07-14 12:58 sahara-随笔
阅读(39)
评论(0)
推荐(0)
算法——格雷编码、霍夫曼编码
摘要: 格雷编码 当 n=0 时,格雷码序列为 [0]。 将n-1编码翻转,翻转部分的n-1位设置位1, 获得n位编码。 霍夫曼编码 那么为什么通过哈夫曼编码后得到的二进制码不会有前缀的问题呢? 这是因为在哈夫曼树中,每个字母对应的节点都是**叶子节点**,而他们对应的二进制码是由根节点到各自节点的路径所决
阅读全文
posted @ 2023-07-14 12:58 sahara-随笔
阅读(206)
评论(0)
推荐(0)
算法——加减乘除计算器
摘要: **操作符号栈,数字栈** 遍历字符 * 若是低优先级运算符(加、减),不断地弹出高优先级运算符(乘、除)栈顶运算符,直到栈为空或者栈顶不为高优先级运算符(乘、除) * 若是左括号运算符,加入操作栈,若是右括号运算符,不断地弹出栈顶运算符,直到栈顶为 左括号 * 若是数字,加入数字栈 遍历完成后,若
阅读全文
posted @ 2023-07-14 12:58 sahara-随笔
阅读(33)
评论(0)
推荐(0)
算法——排列组合
摘要: 排列、组合适合**回溯法**,保存当前状态 什么时候使用 used 数组,什么时候使用 begin 变量 有些朋友可能会疑惑什么时候使用 used 数组,什么时候使用 begin 变量。这里为大家简单总结一下: **排列问题**,讲究顺序(即 [2, 2, 3] 与 [2, 3, 2] 视为不同列表
阅读全文
posted @ 2023-07-14 12:57 sahara-随笔
阅读(41)
评论(0)
推荐(0)
算法-背包问题
摘要: **01背包问题** dp[i][j] = max(dp[i-1][j], dp[i-1][j-w[i]] + v[i]); (j>=w[i]) 一维化(由于递推关系i只和i-1 有关,可进行空间压缩,**遍历j时需要逆序遍历**) for(int i=0;i=w[i];j--){ dp[j] =
阅读全文
posted @ 2023-07-14 12:57 sahara-随笔
阅读(24)
评论(0)
推荐(0)
下一页
公告