C++的值类型
值类别
左值:通常来讲是可以放在赋值运算符左边的表达式,左值具有持久性,拥有确定的内存地址,可以使用取地址符获取;
右值:通常来说是放在赋值运算符右边的右操作数,它是一个临时值,无法取地址操作。
右值引用C++11 中引入了右值引用语义(&&),允许开发者对右值进行引用,从来实现移动语义和完美转发。
移动语义std::move 是 C++11 引入的标准库函数,将一个左值强制转换为右值,从而实现移动语义。通过std::move可以不进行复制实现将一个对象转移到另一个对象,提高了性能。但是std::move不移动任何东西,只是将传入的左值参数强制转化为右值引用
123456namespace std { template<typename T> constexpr remove_reference_t<T>&& move(T&& arg) noexcept { return static_cast<remove_reference_t<T>&& ...
Redis持久化
Redis 的持久化机制是说将 Redis 内存中的数据持久化到磁盘上,以防数据丢失。Redis 中的持久化机制一般有两种:
RDB(Redis DataBase):将 Redis 的内存中的数据快照周期性地写入磁盘,生成一个快照文件(.rdb),
AOF(Append Only File):AOF 持久化是将 Redis 的写操作以追加的形式写入日志文件。在 AOF 持久化模式下,所有的写命令都被追加到 AOF 日志文件中,以此来记录所有修改数据的操作,然后通过日志命令重放来还原数据。
C++中如何引用第三方库
C++中如何引用第三方库?动态链接库和静态链接库在 C++中通常有两种链接 library:动态链接库(Dynamic Link Library,DLL)和静态链接库(Static Link Library,LIB)
动态链接库:在程序运行时通过链接器加载动态链接库,根据程序运行需要动态的链接需要的库中的数据。在 Linux 中,动态链接库通常以 .so 为扩展名(Shared Object),通常命名方式是lib.so.。
静态链接库:在编译链接阶段,静态链接库中的代码会被复制到 bin 中,因此编译的 bin 中是包含了静态链接库的代码的。在 Linux 中静态链接库通常以 .a 为扩展名(archive),通常命名位 lib.a。
引用库在使用第三方库时通常需要两个步骤:
在调用的文件中声明包含头文件,即:#include ""
在编译时链接库文件:
1g++ main.cpp -I/path/library/include -L/path/library -lexample_lib
-I 指定引用的头文件的路径-L 指定第三方库文件所在路径-l 指定 ...
C++函数返回值为引用类型
C++中函数返回值为引用类型有什么作用?函数返回值是引用类型主要三个场景:
函数返回值是一个很大的数据结构,避免拷贝开销;
实现函数的链式赋值操作,此时函数需要作为一个左值,经典的例子有:
std::cout << "hello, world" << std::endl;实际上执行的代码逻辑是: std::cout.operator<<("hello, world").operator<<(std::endl);
operator[]:当随机访问运算符需要实现赋值功能是,函数也需要是一个左值,因此函数需要返回引用类型;
1234567891011vector<int>& addElement(vector<int>& vec, int value) { vec.push_back(value); return vec;}int main() { vector<int> numbers; ...
C++中的整数类型
题目int,long,long long在 32 位 ,64 位和 64 位下跑 32 位虚拟机的大小
一般来说在 32 位系统上:int 通常为 4 字节(32位),long 通常为 4 字节(32 位),long long 通常为 8 字节(64 位)
在 64 位系统上:int 通常位 4 字节(32 位),long 通常为 8 字节(64 位),long long通常为8 字节(64 位)
并且大小只和系统位数有关,所以在虚拟机下也就只和虚拟机的操作系统有关所以在64 位下跑 32 位虚拟机和 32 位系统是一致的。
解释通常查询 C++20 ISO 14882 可以看到在 6.8.2 有关于基本类型的描述:
有五种标准signed integer type:
signed char
short int
int
long int
Long long int
并且按这个list 的顺序每种类型都至少要有和前面的类型一样多的空间。
另外还有一些 impl 定义的扩展 signed integer type,与标准 signed integer type 统称为 signed ...
练级规划
再回首
小时候非常奢求能有一台电脑,主要是为了玩,大概是五年级,步入 3G 时代,我还在用爸妈的手机玩文字版 QQ 农场,那时在别人家看到他们打电脑游戏非常吸引我,因此想法设法去找有电脑的地方玩,初中后半段就开始去网吧玩。后来初中毕业,估摸着中考这么简单的问题难不倒我,然后以此为筹码和爸妈要求家里买了电脑,接入宽带,这可太开心了,这便是梦开始的地方。 虽然买来的电脑大部分情况下还是玩游戏,不过玩游戏这个需求也可以衍生出很多子需求,没钱啊,但是想玩游戏,想要比别人厉害,想要下载一些付费文档,怎么办?找盗版?开外挂?嗯是的。怎么找?别想了那时候没别的,只有 Baidu(虽然现在体验很烂但在十多年前还是要夸一夸的),各种论坛、贴吧,那可都是大神,一个破解论坛够我在其他人面前装逼了(这样我也成小孩假大神了,嘿嘿🤭),什么 office 不能用,小说下不下来?交给我!电脑坏了?我给你重装一下系统!这下我在中年老男人心里也成大神了!这是其一,另外靠着玩游戏,我在电脑前待了足够长的时间,怎么也对计算机略知一二吧,起码知道了 C 语言吧,知道了怎么装系统吧,这些额外收益让我受益匪浅。 高考考 ...
碎片
每天都会看到很多碎片化的信息,这些信息是否应当留存下来,好让自己知道时间花在了哪里。比如今天看到巴菲特的持股,昨天看到的红烧肉的做法,保存下来也是一小笔财富吧。
广告系统的一些基本概念
Refhttps://www.zhihu.com/tardis/zm/art/67578681?source_id=1003
Mac新机开荒
通用开发环境配置
iTerm2
https://iterm2.com/ 下载
安装HomeBrew
1/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
此过程会安装Xcode,git也会被安装好。
安装oh-my-zsh
1sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
安装p10k
1git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
在~/.zshrc配置使用主题:ZSH_THEME="powerlevel10k/powerle ...
装机
装机是时候升级一下设备了,完成一直以来的一个梦想。目标是无卡神机,除了显卡也算是性能拉满了。
清单:
CPU:i7-13700K
K 版本 CPU 是不附赠散热器的,需要另行购买
主板:技嘉Z790M Aorus Elite AX D5 – ¥3738
买的板 U 套装,比较实惠
电源:Sea Sonic Focus GX 750W – ¥699
海韵电源应该是 TOP 1了,应该非常稳定,价格较贵
机箱:先马小朱雀 – ¥89
纯黑风格,无光污染
内存:金百达黑刃 DDR5 6800 16G×2 – ¥669
性价比之选,性能也非常高
存储:致态TiPro7000 1TB – ¥539
这个倒是没什么调研,记得几年前买的海康 C2000Pro 256GB 版本挺贵的,感觉现在价格都便宜了不少,听说长江存储国产存储非常便宜,性价比之选。
散热器:利民AX120 V2 PLUS – ¥129
装上 CPU、内存、存储
放进机箱主板位置比对一下,果然有两个铜柱没上。
不同类型主板铜柱位置参考
待续
主要参考:
【装机教程】全网最好的装机教程,没有之一 – ...