C++
文章平均质量分 67
来日梦多长
一个喜欢跑步游泳、诗词文史的程序员。
展开
-
静态库和动态链接库的安装(Windows环境)
静态库和动态链接库的安装(Windows环境)原创 2018-07-16 11:06:57 · 1645 阅读 · 1 评论 -
Makefile 特殊内置目标
Makefile 特殊内置目标翻译 2023-01-01 20:50:51 · 157 阅读 · 0 评论 -
vim配置
vim C++ 配置原创 2022-09-15 08:24:32 · 223 阅读 · 0 评论 -
C++ shared_ptr的线程安全性
C++ shared_ptr的线程安全性原创 2022-07-17 15:56:56 · 4001 阅读 · 0 评论 -
两个线程各执行100次i++,得到的可能值
两个线程各执行100次i++的可能结果转载 2022-06-18 22:34:31 · 589 阅读 · 0 评论 -
protobuf
编码Base 128 Variant这是一种基于 7 bit(即 128)的变字节长度的编码。小端存储(least significant group first)。最高有效位( most significant bit,MSB):1 表示下一个字节也用来表示该数,0 表示这是该数的最后一个字节。Message Structurekey-value :二进制表示为 key-value-key-value-... 。field number - wire type:参考[1] pro原创 2022-05-25 20:13:06 · 162 阅读 · 0 评论 -
C++ 模板
C++模板原创 2022-04-29 21:07:01 · 1146 阅读 · 0 评论 -
C++虚函数
C++构造函数为什么不能是虚函数原创 2022-04-28 19:48:49 · 1539 阅读 · 0 评论 -
C++合成的构造函数
C++合成的构造函数原创 2022-04-11 22:48:29 · 1356 阅读 · 0 评论 -
C++ enable_shared_from_this 解析
C++ enable_shared_from_this 类解析原创 2022-04-10 20:45:00 · 1001 阅读 · 0 评论 -
C++函数指针
C++函数指针原创 2022-04-09 15:24:01 · 759 阅读 · 0 评论 -
c/c++判断NULL指针
结论只有通过指针读取指针时,编译器才会判断指针的有效性。实验offsetof()函数struct A { int x; char y; long z;};int main() { int offset = ((struct A*)NULL)->y; // 即 offsetof()的实现方法 printf("offset of y: %d\n", offset); // 打印 4,不会报错}以上就是c语言的宏函数offsetof的原理,其定义如下:#define of原创 2021-12-17 21:53:32 · 1930 阅读 · 0 评论 -
C++ const说明
C++ const说明直接上代码"顶层const"和"底层const"总结直接上代码#include <iostream>using namespace std;class A {public: int m1 = 1, m2 = 2;};int main() { A a, b; const A ca; const A * p1 = &a; // 被指向的对象不能改变 //p1->m1 = 10; // wrong,因为被指对象不能改变 p1 = &原创 2021-07-18 23:26:04 · 131 阅读 · 2 评论 -
C++右值引用
C++右值引用原创 2019-05-08 17:49:10 · 3129 阅读 · 1 评论 -
C语言申请堆栈的限制
内存空间:32位程序:内存空间不得超过4G,其中4G是最大unsigned int表示的范围(2^32-1),见下图。64位程序:内存空间应该最大是(2^64-1)。这从malloc函数的声明可以看出:void* malloc (size_t size);其中:size_t在64位下为int64,在32位下为int32。栈空间:Linux:据说不能超过2MB,没有测试(`TODO`:待测试)。在linux下可以使用`ulimits`命令查看。Windows原创 2020-05-20 14:30:22 · 1022 阅读 · 0 评论 -
doxygen安装与使用
环境:Ubuntu 18.04安装:sudo apt-get install doxygen如果要使用图形工具,则sudo apt-get install doxywizardsudo apt-get install graphviz如果doxywizard使用时报错,cannot find dot,就是没有安装graphviz,可以在doxywizard的“Wiza...原创 2020-04-25 15:40:17 · 1053 阅读 · 0 评论 -
C++11: vector::push_back和vector::emplace_back的区别
vector::push_back()的输入参数是对象本身;vector::emplace_back()的输入参数是构造函数的参数,它可以根据这些参数自动构造一个对象。#include <iostream>#include <vector>using namespace std;class A{public: explicit A(int x):x_...原创 2020-04-25 12:20:40 · 645 阅读 · 0 评论 -
C/C++运算优先级 ++和()
int main() { Solution sol; int i = 0; if (++i) { // 预自增,先自增,再括号 cout << "Right" << endl; // 输出Right cout << i << endl; // i=1 } else { cout << "Wrong" <&...原创 2019-04-03 21:00:35 · 1156 阅读 · 0 评论 -
Visual Studio等中文乱码
Visual Studio中文乱码:报错为“'{': no matching token found”,或者“error C2143: syntax error: missing ')' before 'constant'”等。解决:改成本地编码:“Chinese Simplified(GB2312)-Codepage 936”或者“Unicode(UTF-8 with signat...原创 2019-05-05 18:17:26 · 6237 阅读 · 1 评论 -
C++ string到底能不能使用cout输出
头文件<iostream>中有string类型的定义和部分方法。头文件<string>中有string的定义和全部方法,例如重载了<<运算符,定义了getline函数等。如果没有include <string> , 那么默认是不能使用cout输入的,必须用c_str()方法把string转化成char*;也就是说,如果include &l...原创 2019-05-06 21:14:58 · 2110 阅读 · 0 评论 -
转载:eclipse/g++多线程编译问题
解决方法:https://www.jianshu.com/p/08b9634db3d7?tdsourcetag=s_pctim_aiomsg转载 2019-05-20 17:04:29 · 380 阅读 · 0 评论 -
C++异常: throw; 没有参数
直接throw; 而后面不跟任何参数,是将所catch到的exception直接抛出,这样可以避免复制exception对象。#include <exception>#include <iostream>using namespace std;class Exception : public exception{public: Exception()...原创 2019-05-21 17:17:00 · 2675 阅读 · 0 评论 -
进程与线程
进程与线程:进程:活动的程序。拥有独立的地址空间。一个程序至少有一个进程,一个进程至少有一个线程。线程:不能独立运行,各线程共享进程的内存地址。进程间通信(IPC):1、管道:半双工通信,数据单向流动,没有名字且大小受限,只能在亲属进程间通信,传输无格式流,所以通信双方必须事先约定好数据格式,存储在内存中;2、有名管道:有名字,半双工,允许非亲属进程间通信,FIFO,有自己的传...原创 2019-05-26 20:05:28 · 228 阅读 · 0 评论 -
C++ volatile
volatile与机器有关,只能通过阅读编译器文档理解。(1)violate变量不允许编译器优化。这就使得编译器不会改变指令执行顺序,在多线程中特别有用,例如双检锁的数据竞争问题。volatile后面的变量,是常变量,会直接访问地址,如果没有这个关键字,就可能会暂时使用寄存器的值,而不是读取地址。在并发读取的时候,寄存器读出来的值不一定是最新的。https://blog.csdn....原创 2019-05-22 23:03:14 · 797 阅读 · 0 评论 -
VSCode配置文件模板
vscode配置文件原创 2019-07-17 17:49:59 · 3541 阅读 · 0 评论 -
C++11 智能指针
shared_ptr, weak_ptr, unique_ptr原创 2019-08-02 15:16:50 · 234 阅读 · 0 评论 -
C++ int转string的几种方法比较
一、itoa函数(Windows)非C/C++标准,可移植性不好// Windows#include <string> // string, sprintf//#include <cstdlib>using namespace std;int main() { int n=100; char ch[10]; _itoa(n, ch...原创 2019-03-19 11:08:05 · 75987 阅读 · 5 评论