- 博客(11)
- 问答 (1)
- 收藏
- 关注
原创 关于樱桃键盘锁定alt键和win键这件事
昨晚打了一盘lol,结果我发现alt+tab切换不出去了,win+alt+delete也不好使了,当时没多想。今天早上照着教程试了很多方法,也没有用。后来突然意识到我用的是cherry键盘。。。于是乎急忙去了一下官网。终于发现了问题所在。尼玛坑爹啊,可能是我误触了键盘上那个樱桃图标的按键,导致键盘自身锁死了这些关键的组合键,害的我差点没重装系统。fxxk!...
2021-10-16 12:36:06
19387
4
原创 unique_ptr的简单使用
#include <iostream>#include <memory>class T{public: T() : t(5) { } ~T() { std::cout << "destructor" << std::endl; std::cout << "t value" << t << std::endl; } T(T&& t1) { //this->t = t.
2021-10-14 19:52:56
226
原创 dynamic_cast和static_cast
#include <iostream>class F{public: F() {} //virtual ~F() {} virtual void Print() { std::cout << "F::Print()" << std::endl; }};class S : public F{public: S() {} ~S() {} void Print() { std::cout << "S::Print()" <
2021-10-09 17:53:04
105
原创 记一次zlib在工作中的使用情况
场景:由于fdt中的chunk(原始数据)较大,所以需要对其压缩存储。做法:参考lucene中压缩过程,发现是在每次生成chunk时对其进行压缩操作,最后写入磁盘上。解压的过程是在读取fdt文件时,加载原始数据域值时,进行解压缩。忽略掉lucene中分片压缩的操作,仅对于生成chunk进行一次压缩,此处压缩采用的便是zlib库。改动:在项目中,改动如下:压缩过程较为简单,在flush函数中操作,只需要适配compress()函数参数即可。但是解压缩uncompress第三个、第四个参数,需
2021-09-30 14:12:34
93
原创 zlib的使用
测试项目目录结构如图其中zlib源文件放置在libz目录下。将ZLib源文件编译成静态库1.在libz-cmake目录下的CMakeLists.txt中编写如下命令,生成静态库。cmake_minimum_required (VERSION 3.3)project (z)file (GLOB_RECURSE SOURCES ${CMAKE_SOURCE_DIR}/libz/*.c)file (GLOB_RECURSE HEADERS ${CMAKE_SOURCE_DIR}/libz/*.
2021-09-30 11:13:13
2377
原创 手拿把掐:类对象在进行函数传参及返回临时对象时调用过程分析
#include <iostream>using namespace std;class Person{public: Person() { std::cout << "Person()" << std::endl; } virtual ~Person() { std::cout << "~Person()" << std::endl; } Person(const Person& p) { this
2021-09-28 20:11:49
143
原创 四种类型转换的理解
const_cast该操作两句口诀: “常量指针转化为非常量的指针,并且指向原来的对象” “常量引用转化为非常量的引用,并且指向原来的对象”通俗说,该操作会去掉常量属性。例子如下:int value = 1;const int* p = &value; //此处底层const无法修改value的值//*p = 3; //无法修改指向value的值,error C3892: “p”: 不能给常量赋值int* p1 = const_cast<int*>(p);*p..
2021-08-30 12:39:48
108
原创 explicit
explicit使用当一个类的构造函数有参数的时候class T{public: /*T() { std::cout << "T()" << std::endl; }*/ T(int a) { std::cout << "T(int a)" << std::endl; std::cout << a << std::endl; }public: //int num_;};在主函数中作如下操作in
2021-08-26 14:25:53
62
原创 nullptr && auto
nullptrnullptr用以区分0和NULL,因为本质上NULL等同于0。现有函数Test(),对其进行重载void test(void* p){ std::cout << "arguement: void *" << std::endl;}void test(int a){ std::cout << "arguement: int " << std::endl;}倘若传入NULL。test(NULL);结果如图:效果等同
2021-07-02 17:19:18
69
原创 对于数组的理解
对于数组的理解疑问之处:1.数组名称代表什么?2.对数组名取地址会发生什么?3.数组的偏移结果?验证:数组名就是首元素地址int arr[5] = { 0,1,2,3,4 };printf("相同地址\n");printf("%p\n",arr); //数组名是首元素地址,对其进行*操作,得到首元素printf("%p\n",&arr); //虽然地址相同,但是对数组名取地址得到的却是整块数组地址,printf("%p\n",&arr[0]);printf("地址虽
2021-07-01 20:50:20
66
空空如也
关于C++虚函数的疑问
2021-04-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人