摘要:
单例模式的3种实现方式: 饿汉式、 懒汉式 双重检查 1. 饿汉式(Eager Initialization) 饿汉式单例模式在类加载时就创建实例,因此线程安全,但可能会增加程序启动时间和内存消耗。 #include <iostream> class Singleton { public: // 获 阅读全文
摘要:
今天去一家公司面试,一上来就是一个让我懵逼的问题,后面是一连串的类似懵逼问题。 这些问题记录如下: 1.读溢出,会报什么错? 2.写溢出,会报什么错? 3.库函数shutdown()是同步调用还是异步调用? 4.什么是粘包问题?粘包如何解决? 5.有2个线程在对一个socket套接字同时调用 sen 阅读全文
摘要:
这是一个base16 编码/解码 的方法。而且支持中文的编码和解码。 代码由chatgpt-3.5生成: #include <iostream> #include <string> const std::string base16 = "0123456789ABCDEF"; void Base16E 阅读全文
摘要:
在这个单例模式的实现中,使用了静态局部变量来确保只有一个实例。 静态局部变量只会在第一次调用函数时初始化,并且在程序的整个生命周期内保持其值不变。 这意味着,无论多少次调用 getInstance() 方法,都只会在第一次调用时创建一个实例,后续的调用会返回同一个实例。 具体来说,在 getInst 阅读全文
摘要:
template< class... Args >void emplace_back( Args&&... args ); (C++11 起)(C++17 前) template< class... Args >reference emplace_back( Args&&... args ); (C 阅读全文
摘要:
面试的时候,有时候会问到你对shell的了解,要你说出你知道的一些SHELL命令。 安装: yum install xxx yum remove xxx wget xxx 压缩,解压缩 tar -zxvf xxx tar -zcvf xxx zip xxx unzip xxx 系统相关: chmod 阅读全文
摘要:
`strcpy`和`memcpy`都是用于内存复制的函数,但它们之间有几个关键的区别: 1. **复制的对象**: - `strcpy`主要用于复制字符串,它将从源字符串的起始位置开始复制字符,直到遇到源字符串的空字符('\0'),然后将空字符也复制到目标字符串中,表示字符串的结束。 - `memc 阅读全文
摘要:
有一个数组,要求找出最大的3个数,最小的4个数。 小顶堆,从大到小排序,筛选最小的N个数。 // 创建一个小顶堆 std::priority_queue<int, std::vector<int>, std::greater<int>> min_heap; 大顶堆,从小到大排序,筛选最大的N个数。 阅读全文
摘要:
#include <iostream> #include <memory> class MyClass { public: MyClass() { std::cout << "MyClass constructed" << std::endl; } ~MyClass() { std::cout << 阅读全文
摘要:
https://zh.cppreference.com/w/ cppreference.com 是一个在线的 C++ 参考手册网站,提供了广泛的 C++ 相关信息,包括标准库、语言特性、算法、数据结构等方面的文档。该网站是 C++ 开发者的重要资源之一,它的内容通常比较全面,详细说明了 C++ 的各 阅读全文
摘要:
std::ref() 是C++标准库 <functional> 头文件中的函数模板,用于将一个对象包装成一个引用包装器(reference wrapper)。引用包装器允许你在使用函数模板时传递对象的引用而不是拷贝对象本身。 下面是 std::ref() 的基本用法和解释: #include <io 阅读全文
摘要:
完整的 OpenSSL,包括命令行工具和开发包,可以运行以下命令: sudo yum install openssl openssl-devel 使用以下命令验证 OpenSSL 是否已经成功安装: openssl version 阅读全文
摘要:
提问: 我写了一个C++的代码,用的cmake来管理的代码。 我的C++代码里面用到了 #include <openssl/ssl.h> 。 我在cmake里面有 include_directories(/usr/include), 因为openssl在/usr/include目录下面。 cmake 阅读全文
摘要:
要查找一个ssl.h的文件 find / -name ssl.h 2> /dev2/null 使用root权限,从根目录下查找 ssl.h文件 将 错误日志 重定向到 /dev2文件夹下面的 null文件 如果dev2文件夹不存在,需要手动创建 /usr/include/openssl/ssl.h 阅读全文
摘要:
获取当前时间戳 #include <iostream> #include <sys/time.h> int main(){ struct timeval tv; gettimeofday(&tv, NULL); auto count = tv.tv_sec * 1000ul + tv.tv_usec 阅读全文
摘要:
在 C++ 中,仿函数是一种可以像函数一样调用的对象。 通过实现 operator(),你可以创建一个类或结构体,然后像函数一样使用它,这就是仿函数的概念。 当我们谈到仿函数时,通常是指定义了函数调用运算符 operator() 的类或结构体。 以下是两个简单的 C++ 仿函数示例,一个用于比较整数 阅读全文
摘要:
#查看本机core文件大小 ulimit -c 设置core文件大小为无限制 echo "ulimit -c unlimited" >> ~/.bashrc source ~/.bashrc 阅读全文
摘要:
lsblk df -h file_path # 查看磁盘分区 lsblk [henry@192 henry-sylar]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 100G 0 disk ├─sda1 8:1 0 300M 0 阅读全文
摘要:
较高版本的gdb能显示更多的调试信息,因此有必要升级一下自己的编译环境。 # 安装 GMP 库及其开发文件(gdb的安装需要这个) sudo yum install gmp gmp-devel # 下载源文件 wget http://ftp.gnu.org/gnu/gdb/gdb-12.1.tar. 阅读全文
摘要:
手痒,在centos7上面,升级了glibc,然后导致正常程序编译都出现了问题。 这是编译的报错: /opt/rh/devtoolset-9/root/usr/include/c++/9/x86_64-redhat-linux/bits/os_defines.h:44:19: error: miss 阅读全文