上一页 1 2 3 4 5 6 ··· 20 下一页
摘要: 使用valgrind 检查内存 --tool=memcheck 我们的可执行文件是 ./bin/thread_13,它有内存泄漏的问题,需要valgrind来检查分析。 将日志输出到 t13_memcheck.log 2>&1 是一个特殊的重定向,它会把标准错误(stderr,通常是错误消息)重定向 阅读全文
posted @ 2024-03-17 10:58 He_LiangLiang 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 列表初始化(List Initialization)是C++11引入的一种新的初始化方式,它使用大括号 {} 来包围初始化器的值。这种初始化方式提供了更高的灵活性和安全性,特别是在处理聚合类型(如数组、结构体和类)以及在某些需要避免函数声明歧义的情况下。 下面我将详细讲解列表初始化的几个关键方面,并 阅读全文
posted @ 2024-03-17 00:22 He_LiangLiang 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 不可以将 std::atomic<int> atomicInt(0); 改为 std::atomic<int> atomicInt = 0;。原因如下: 在C++中,对象的初始化与赋值是两个不同的操作,它们有不同的语义和用途。 初始化 (std::atomic<int> atomicInt(0);) 阅读全文
posted @ 2024-03-17 00:13 He_LiangLiang 阅读(10) 评论(0) 推荐(0) 编辑
摘要: gprof:这是一个GNU的性能分析工具,主要用于分析程序的函数调用关系,以及每个函数的运行时间等。 Valgrind:这是一个用于内存调试、内存泄漏检测以及性能分析的开源工具集。其中,Valgrind的Callgrind工具可以收集程序运行时的函数调用信息,用于性能分析。 perf:这是Linux 阅读全文
posted @ 2024-03-16 11:06 He_LiangLiang 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 单例模式的3种实现方式: 饿汉式、 懒汉式 双重检查 1. 饿汉式(Eager Initialization) 饿汉式单例模式在类加载时就创建实例,因此线程安全,但可能会增加程序启动时间和内存消耗。 #include <iostream> class Singleton { public: // 获 阅读全文
posted @ 2024-03-13 12:06 He_LiangLiang 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 今天去一家公司面试,一上来就是一个让我懵逼的问题,后面是一连串的类似懵逼问题。 这些问题记录如下: 1.读溢出,会报什么错? 2.写溢出,会报什么错? 3.库函数shutdown()是同步调用还是异步调用? 4.什么是粘包问题?粘包如何解决? 5.有2个线程在对一个socket套接字同时调用 sen 阅读全文
posted @ 2024-03-12 20:43 He_LiangLiang 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 这是一个base16 编码/解码 的方法。而且支持中文的编码和解码。 代码由chatgpt-3.5生成: #include <iostream> #include <string> const std::string base16 = "0123456789ABCDEF"; void Base16E 阅读全文
posted @ 2024-03-11 22:48 He_LiangLiang 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 在这个单例模式的实现中,使用了静态局部变量来确保只有一个实例。 静态局部变量只会在第一次调用函数时初始化,并且在程序的整个生命周期内保持其值不变。 这意味着,无论多少次调用 getInstance() 方法,都只会在第一次调用时创建一个实例,后续的调用会返回同一个实例。 具体来说,在 getInst 阅读全文
posted @ 2024-03-10 21:22 He_LiangLiang 阅读(2) 评论(0) 推荐(0) 编辑
摘要: template< class... Args >void emplace_back( Args&&... args ); (C++11 起)(C++17 前) template< class... Args >reference emplace_back( Args&&... args ); (C 阅读全文
posted @ 2024-03-06 13:24 He_LiangLiang 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 面试的时候,有时候会问到你对shell的了解,要你说出你知道的一些SHELL命令。 安装: yum install xxx yum remove xxx wget xxx 压缩,解压缩 tar -zxvf xxx tar -zcvf xxx zip xxx unzip xxx 系统相关: chmod 阅读全文
posted @ 2024-03-06 11:20 He_LiangLiang 阅读(3) 评论(0) 推荐(0) 编辑
摘要: `strcpy`和`memcpy`都是用于内存复制的函数,但它们之间有几个关键的区别: 1. **复制的对象**: - `strcpy`主要用于复制字符串,它将从源字符串的起始位置开始复制字符,直到遇到源字符串的空字符('\0'),然后将空字符也复制到目标字符串中,表示字符串的结束。 - `memc 阅读全文
posted @ 2024-03-04 22:23 He_LiangLiang 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 有一个数组,要求找出最大的3个数,最小的4个数。 小顶堆,从大到小排序,筛选最小的N个数。 // 创建一个小顶堆 std::priority_queue<int, std::vector<int>, std::greater<int>> min_heap; 大顶堆,从小到大排序,筛选最大的N个数。 阅读全文
posted @ 2024-03-03 16:35 He_LiangLiang 阅读(7) 评论(0) 推荐(0) 编辑
摘要: #include <iostream> #include <memory> class MyClass { public: MyClass() { std::cout << "MyClass constructed" << std::endl; } ~MyClass() { std::cout << 阅读全文
posted @ 2024-03-02 16:31 He_LiangLiang 阅读(2) 评论(0) 推荐(0) 编辑
摘要: https://zh.cppreference.com/w/ cppreference.com 是一个在线的 C++ 参考手册网站,提供了广泛的 C++ 相关信息,包括标准库、语言特性、算法、数据结构等方面的文档。该网站是 C++ 开发者的重要资源之一,它的内容通常比较全面,详细说明了 C++ 的各 阅读全文
posted @ 2024-01-25 16:55 He_LiangLiang 阅读(27) 评论(0) 推荐(0) 编辑
摘要: std::ref() 是C++标准库 <functional> 头文件中的函数模板,用于将一个对象包装成一个引用包装器(reference wrapper)。引用包装器允许你在使用函数模板时传递对象的引用而不是拷贝对象本身。 下面是 std::ref() 的基本用法和解释: #include <io 阅读全文
posted @ 2024-01-25 08:28 He_LiangLiang 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 完整的 OpenSSL,包括命令行工具和开发包,可以运行以下命令: sudo yum install openssl openssl-devel 使用以下命令验证 OpenSSL 是否已经成功安装: openssl version 阅读全文
posted @ 2024-01-22 17:23 He_LiangLiang 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 提问: 我写了一个C++的代码,用的cmake来管理的代码。 我的C++代码里面用到了 #include <openssl/ssl.h> 。 我在cmake里面有 include_directories(/usr/include), 因为openssl在/usr/include目录下面。 cmake 阅读全文
posted @ 2024-01-22 17:15 He_LiangLiang 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 要查找一个ssl.h的文件 find / -name ssl.h 2> /dev2/null 使用root权限,从根目录下查找 ssl.h文件 将 错误日志 重定向到 /dev2文件夹下面的 null文件 如果dev2文件夹不存在,需要手动创建 /usr/include/openssl/ssl.h 阅读全文
posted @ 2024-01-21 15:51 He_LiangLiang 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 获取当前时间戳 #include <iostream> #include <sys/time.h> int main(){ struct timeval tv; gettimeofday(&tv, NULL); auto count = tv.tv_sec * 1000ul + tv.tv_usec 阅读全文
posted @ 2024-01-12 17:07 He_LiangLiang 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 在 C++ 中,仿函数是一种可以像函数一样调用的对象。 通过实现 operator(),你可以创建一个类或结构体,然后像函数一样使用它,这就是仿函数的概念。 当我们谈到仿函数时,通常是指定义了函数调用运算符 operator() 的类或结构体。 以下是两个简单的 C++ 仿函数示例,一个用于比较整数 阅读全文
posted @ 2024-01-12 13:52 He_LiangLiang 阅读(14) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 20 下一页