- 博客(17)
- 收藏
- 关注
原创 docker
解决配置镜像加速后docker起不来:配置文件是一个json格式的文件,在json文件中对齐的时候不能存在空格,直接拷贝整个tee命令执行。
2024-01-08 21:50:06
1080
1
原创 如何存储10亿的数据
最近突然想到这么一个问题:假如有<10亿的数据,每个数据不重复,同时是无序,不连续的,如何使用最小的空间来存储来这么多数据,同时又能快速的确认哪个数据有没有。直接存储10亿个数据一个int的类型,可以最大可以表示:2147483647,这个数大于10亿,所以可以使用一个int(4个字节)来表示一个数。在这种情况下,需要的空间是4*10^9,大约需要4G的空间。如果想去查找一个数据在或不在,此时需要把这么多的数据加载到内存中,分别遍历,需要O(n)的时间复杂度。利用数组的index
2022-03-30 11:07:24
2466
2
原创 利用Openssl生成证书
生成private keyopenssl genrsa -des3 -out ca.key 2048生成根证书openssl req -new -x509 -sha384 -days 3650 -key ca.key -out ca.crt生成二级证书的private keyopenssl genrsa -out second.key 2048生成二级证书的CSRopenssl req -new -key second.key -out second.csropen.
2022-03-30 09:56:14
632
原创 HTTP元语
Host:请求的url的中域名或者IP,格式如下Host:host[:port]port是可选的,不过有些代理和gateway会禁止发送default port(http 80/https 443)Content-MD5:用来校验一次请求中的payload.这个是对所有的payload进行MD5计算,得到一个128bit(16bytes)的二进制数,然后再对这个128bit的二进制数进行base64.但是不同的server会返回不同长度的content-md5.直接对二级制数
2022-01-13 19:28:47
950
原创 Vector代码实现(模板)
简易的vector代码实现,目前实现了以下方法:insert delete operate[]C++源码#pragma once#include <iostream>const int DEFAULT_VECTOR_LEN = 4;template <typename T>class CSLVector{public: CSLVector(); ~CSLVector(); bool Insert(T oData); bool Delete
2021-12-28 20:34:18
626
原创 基于链表实现的队列(模板)
队列:先进先出代码实现:#pragma once#include <iostream>template <typename T>class CSLQueue{ typedef struct ST_NODE { T* pData; ST_NODE* pNext; }ST_SL_NODE;public: CSLQueue(); ~CSLQueue(); bool EnQueue(T* pData); //need to free .
2021-12-21 20:36:07
564
原创 字节序简述
小端字节序:将低字节存在高地址大端字节序:将高字节存在高地址Windows默认时小端字节序,可以看一下VS debug时的内存截图。如何判断机器的字节序#include <iostream>using namespace std;bool checkLitteEndian(){ int a = 0x01; unsigned char * pBuff = (unsigned char *)&a; return pBuff[0] == 0x01.
2021-12-20 19:38:18
179
1
原创 shared_ptr&&weak_ptr
shared_ptrC++11中引入shared_ptr来简化内存的管理,当shared_ptr不再使用时,自动回收内存。初始化1)通过 make_shared赋值(推荐的初始化方式)2)通过reset3)通过赋值int main(int argc, char* argv[]){ cout << "**************implement an instance by make_shared **************************" <&l
2021-12-06 21:55:18
1537
原创 单实例(单例模式)
特点:1、只能被初始化一次(不能提供public的构造函数和析构函数)2、不能被拷贝(不能提供拷贝构造函数、赋值函数)示例:Windows中进行socket开发时,要loadWs2_32.lib,同时还要调用WSAStartup和WSACleanup来初始化和释放资源,使用中只要初始化一次就可以,这时候就可以通过单实例来实现。头文件#pragma onceclass CWinSockInit{public: static CWinSockInit& GetIns.
2021-12-06 20:40:37
1148
原创 函数调用时的栈操作
通过分析函数调用的汇编,解析一下时如何进行函数调用示例代码#include <iostream>using namespace std;int add(int a, int b){ int d = 0; d = a + b; return d;}int main(int argc, char* argv[]){ int a = 1; int b = 2; int c = 0; c = add(a, b); return 0;}main函数的主
2021-12-06 20:25:27
395
原创 Pip安装相关
指定新源pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple/如果出现上面的错误:pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn
2021-12-03 11:05:02
646
1
原创 ESP EBP
ESP:栈指针寄存器(extended stack pointer),指向系统栈最上面一个栈帧的栈顶EBP:基址指针寄存器(extended base pointer),指向系统栈最上面一个栈帧的底部。
2021-12-02 19:37:20
250
原创 C++拷贝构造函数和赋值函数
在定义一个类时,会默认生成拷贝构造函数和赋值拷贝构造函数CObject(const CObject& oOBJ);CObject::CObject(const CObject &oOBJ){ //process data}什么时候用拷贝构造函数:初始化对象 作为形参 作为返回值赋值函数CObject& operator=(const CObject& oOBJ);CObject& CObject::operator=(con
2021-12-01 21:43:47
677
原创 引用和值传递
C++中在函数传入形参时,有两种方式,引用和值传递。引用:传入的是参数的地址,任何对该参数的修改,都会对应到这个参数起作用。值传递:传入的是参数的拷贝,如果参数是一个对象,这个时候会调用这个对象的拷贝构造函数。...
2021-12-01 20:51:59
351
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人