自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 用法上剖析c++中的while(cin>>s)、getline,以及为stringstream打好基础

对于普遍的输入流,执行cin>>s,代表数据流到具体对象中。正常情况下,非空格字符开始,遇到空格结束,并返回istream对象,此时while识别为true,第一次进入循环,此时的s="a"。istream相当于一个从缓冲区获取的总流,>>,getline()方法,类似于产生一段段子流,流入到具体对象中,子流划分默认为空格(回车此时也算),也可用getline指定用于划分的字符。所以is可以传入cin,因为cin就是键盘缓冲区的输入流,str传入s,最后等效为 ========= cin>>s。

2025-04-25 01:59:37 594

原创 Centos7 一次搞定:配置yum,解决scl问题,安装升级c++11,ssh连接vscode

centos7在2024年6月30日,结束,官方不再进行支持维护,官方的YUM源也下线了,下线的方式是使yum的域名不解析。所以现在需要配置国内的YUM源今天新建了个centos7的虚拟机发现yum无法正常使用已加载插件:fastestmirror Determining fastest mirrors Could not retrievemirrorlist未知的错误”

2025-01-26 02:18:02 1207 1

原创 C++总结:string,char*,char[]转换(通用且满足日常需要)

【代码】C++总结:string,char*,char[]转换(通用且满足日常需要)

2025-01-12 23:30:50 289

原创 c++ 各种cmp自定义函数差别

priority < int,vector,cmp> 中因为是模版参数,要传类型,可以用函数类型(函数三要素) 或 有仿函数的类名。sort( iter1,iter2,cmp )中因为是函数参数,要传对象,可以用函数对象(函数名) 或 有仿函数的类对象。函数作为cmp:priority < int,vector,类作为cmp:priority < int,vector,函数作为cmp:sort( iter1,iter2,类作为cmp:class cmp2{

2025-01-10 16:24:19 247

原创 数据库:窗口函数用法 和 内核实现(cmu15445 fall 2023 P3)

窗口函数是在每个帧的元组上计算的,我们输出我们在每个帧中计算的内容。此查询显示,当 order by 和 window frames 都省略时,它会从每个分区的第一行到最后一行进行计算,这意味着分区内的结果应该相同。与前面的示例不同,当省略窗口框架且未省略 order by 子句时,它会从每个分区的第一行计算到当前行。子句时,您可以在进行计算之前先对 Tuples 进行排序,并且当没有 order BY 子句时,不要更改来自子执行程序的 Tuples 的顺序。下面的示例计算每个部门的薪金的移动平均值。

2024-12-17 16:40:32 1622

原创 【数据库事务并发】可串行化,事务优先图,2PL

作用:2PL 本身已经足够保证并发事务是可序列化的,通过 2PL 产生的多事务中,各个事务之间的依赖关系能构成有向无环图。即:T2 等待完 T1 对 A 的解锁后,执行读 A 写 A 的操作,都是根据 T1 对 A 的修改上产生的。作用:在2PL的基础上,可以避免级联回滚(你都commit了,保证彻底结束,原子性设为yes)解释:T1:W(A)和 T2:R(A)构成写读冲突,确定先后顺序。W(B)构成读写冲突,确定先后顺序。概念:对于一个事务而言,总是先完成所有的上锁阶段,然后再完成所有的解锁阶段。

2024-12-10 18:00:53 2260

原创 C++位右移运算符大坑 -> 若 “全部” 右移后保留有效位!

gpt又说:可能是因为你的编译器或处理器对无符号整数的右移操作有特定的实现,它可能不会将结果设置为0,而是保留最低的有效位。这种情况通常在右移操作中不常见,但有些处理器可能会这样做。gpt说:右移32位后,所有位都会移出,但根据C++的右移规则,对于无符号整数(是无符号整数),右移操作会填充0。你有一个32位的无符号整数:例如。

2024-11-27 00:07:48 163

原创 异或算法用途——>寻找只有特定位不同的数

此掩码可以通过诸如 1

2024-11-26 17:30:17 189

原创 CMU-15445 2023fall project2 参考资料推荐

推荐看知乎大佬,通俗易懂,可以从零学会。博客老哥,结合各方资料并加入自己理解。

2024-11-24 20:47:18 142

原创 【C++】 详解 lower_bound 和 upper_bound 函数(绝对正确,大道至简)

寻找第一个不满足cmp的迭代器,只适用前面都满足cmp的排序,例子:【1,2,3,4,5】, cmp偶数为true,最后返回3,不是1。寻找第一个满足cmp的迭代器,只适用前面都不满足cmp的排序,例子:【1,3,4】,cmp偶数为true,最后返回3。网上看了一篇高评论的文章,动手操作下来发现完全错的,感觉还是好多人看各种资料看的迷糊。类型是迭代器指向 和 val(两者应一致,val和e位置不可替换)寻找第一个大于等于val的迭代器。寻找第一个大于等于val的数。寻找第一个大于val的迭代器。

2024-11-18 16:30:10 347

原创 Google代码规范(持续更新)

四、类成员属性命名规则:get_value_ 小写、下划线、尾部下划线。五、类成员函数命名规则:GetValue 大写分割,无下划线。二、if中有return后无需再用else。三、else要紧跟在if结束后括号。一、if后永远要加大括号。

2024-11-17 21:21:01 443

原创 c++ 并发std::future与std::promise

1、promise不能通过set_value初始化,一旦用了set_value就会与子线程中的set冲突,所以不能用来进行修改前后值的判断。2、ref用于线程函数传引用,也可以线程函数不接收引用,改用move传入。3、future的get()先等待子线程阻塞,再接受子线程设定的值。// 创建一个线程,并将 promise 的引用传递给它。// 在这里,主线程可以继续执行其他任务...// 设置 promise 的值为 true。// 等待子线程设置 promise 的值。// 等待子线程结束。

2024-11-17 20:22:30 253

原创 CMU15445 fall2023 新手推荐入门参考资料(针对2023fall版版本)

一、思路及其环境配置你需要的前置知识,linux虚拟机安装配置,以及vscode等环境的远程连接(过于基础,请自行查找资料)正题:VSCode+clangd+clang+lldb+cmake配置linux:C/C++开发环境指南(包括生成可执行文件,调试)_vscode linux远程cmake调试 clang-CSDN博客本人自己的记录,先看我的再配合下面博主的分享,可以做到从0开始搭配环境(我的是以VM虚拟机为主)(全网最详细!!!)CMU15-445(Fall 2023)——从环境搭建开始的P0详细历

2024-11-12 16:23:50 398

原创 VSCode+clangd+clang+lldb+cmake配置linux:C/C++开发环境指南(包括生成可执行文件,调试)

{workspaceFolder}可以保留,是当前文件夹的路径变量,注意比对。想要调试F5选择LLDB,但出现问题,显示找不到可执行文件。首先要知道调试的功能由launch.json这个文件实现。是个提示,不是变量,修改成文件名(没必要用变量,麻烦)

2024-10-15 00:06:17 656 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除