C/C++
文章平均质量分 56
雨田嘟嘟
这个作者很懒,什么都没留下…
展开
-
zipOpenNewFileInZip3 密码错误
zipOpenNewFileInZip3 可以加密压缩包。但是测试缺无法解压,一直密码不正确。原创 2023-03-03 16:36:50 · 460 阅读 · 1 评论 -
compiler explorer
虽然不常用,但还是记录下吧。以前了解过这个在线编辑网站,很久都没用。今天正好在没有编译环境的机器上学习代码。就又想起来他了,还是写一下吧。网址如下:Compiler ExplorerCompiler Explorer is an interactive online compiler which shows the assembly output of compiled C++, Rust, Go (and many more) code.https://godbolt.org/很方便,最上方的A.原创 2022-05-30 20:37:08 · 6261 阅读 · 1 评论 -
生成可视化的图形gprof2dot.py
生成可视化的图形生成可视化的图形需要下载gprof2dot:gprof2dot · PyPIgprof2dot · PyPIGenerate a dot graph from the output of several profilers.https://pypi.org/project/gprof2dot/#files这是个Python脚本,下载之后解压,确认gprof2dot.py有运行权限,并把这个脚本添加到$PATH路径中的任一文件夹下,我是在/usr/bin目录下创建了它...原创 2022-04-28 18:45:13 · 1717 阅读 · 1 评论 -
容器迭代器erase
AssociContainer <int> c; //关联容器:mapsetfor(auto it=c.begin();it!=c.end();) { if(badValue(*it)) c.erase(it++); //关联容器set/map c++11之前版本 erase返回值为void else ++it;}说明:c.erase(it++) 会把it的旧值传给erase,但在erase开始执行之前it会自增,正好符合我们的期望。关联容器这样写没有任何..原创 2022-04-07 12:15:16 · 1813 阅读 · 0 评论 -
gcc cppreference
gcc.gnu.orghttps://gcc.gnu.org/https://gcc.gnu.org/onlinedocs/gcc手册 (比如可以查找attribute 相关介绍)https://gcc.gnu.org/onlinedocs/gcc-7.3.0/gcc/gcc 编译选项(比如fPIC Wall)https://gcc.gnu.org/onlinedocs/gcc-7.3.0/gcc/Option-Index.html#Option-Indexhttps://gcc.gnu.原创 2022-03-15 10:27:53 · 1180 阅读 · 0 评论 -
awesome c/c++
GitHub - fffaraz/awesome-cpp: A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesom原创 2022-02-08 17:45:43 · 1496 阅读 · 0 评论 -
mv: error while loading shared libraries: libc.so.6
想把libc.so换成低版本的测试下程序反应,mv /lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libc.so.6_bk然后就全部ls: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directorymv: error while loading shared libraries..原创 2021-08-02 17:42:49 · 840 阅读 · 0 评论 -
C++ Standards Support in GCC
C++ Standards Support in GCChttps://gcc.gnu.org/projects/cxx-status.htmlGCC 4.8.1 was the first feature-complete implementation of the 2011 C++ standard, previously known as C++0x.This mode can be selected with the-std=c++11command-line fl...原创 2021-01-23 22:50:56 · 125 阅读 · 0 评论 -
窗口置顶
使用setWindowFlags接口设置窗口的WindowStaysOnTopHint属性实现置顶操作。WindowStaysOnBottomHin置底操作setWindowFlags(windowFlags()| Qt::WindowStaysOnTopHint);在X11上的一些窗口管理器上,您还必须传递Qt::X11BypassWindowManagerHint,以使此标志正确工作。setWindowFlags(Qt::FramelessWindowHint | Qt::Window.原创 2020-12-21 19:18:06 · 526 阅读 · 0 评论 -
sqlite3_bind
sqlite3_bind_text 中绑定的指针,在sqlite3_step 时必须存在,不能释放,否则会是乱码sqlite3_bind_blob中绑定的指针,在sqlite3_step 时必须存在,不能释放,否则会是乱码sqlite3_bind_int 、sqlite3_bind_double绑定临时变量是可以的,因为传的是值void test_parameter_binding() {//1. 不带参数绑定的情况下插入多条数据。char strSQL[128];fo...原创 2020-12-21 14:29:55 · 2976 阅读 · 0 评论 -
x_str_to_struct not declared in this scope
#include "x2struct/x2struct.hpp"....error: ‘x_str_to_struct’ was not declared in this scope x_str_to_struct(*obj, val);这个问题不要怀疑是否因为没有引用头文件导致的问题了。这个是要转换的结构体里面没有添加XTOSTRUCT 导致。......原创 2020-09-16 15:19:08 · 408 阅读 · 3 评论 -
神奇的sqrt函数以及高精度记时函数
转载https://diducoder.com/sotry-about-sqrt.html// TestC.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "math.h"#include <windows.h>#define eps 1e-7float InvSqrt(float x){ float xhalf = 0.5f*x; int i = *(int*)&x; // get bits ..转载 2020-05-28 11:09:01 · 1219 阅读 · 0 评论 -
x2struct rapidjson
项目重构,序列化成json字符串,其中用到rapidjson,据说目前性能最好的json工具。RapidJSON是腾讯开源的一个高效的C++ JSON解析器及生成器,它是只有头文件的C++库。RapidJSON 是一个 C++ 的 JSON 解析器及生成器。它的灵感来自RapidXml。RapidJSON 小而全。它同时支持 SAX 和 DOM 风格的 API。SAX 解析器只有约 500 行代码。 RapidJSON 快。它的性能可与strlen()相比。可支持 SSE2/SSE...原创 2020-06-05 14:59:01 · 1457 阅读 · 0 评论 -
gcc警告选项汇总 转
————————————————原文链接:https://blog.csdn.net/qq_17308321/article/details/79979514参考资料:https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options请求或取消警告的选项警告是诊断消息,报告的结构本质上不是错误的,但...转载 2020-01-06 11:11:46 · 4853 阅读 · 0 评论 -
使用 C++ 处理 JSON 数据交换格式
项目中用到了json存数据,在此记录一下。From: http://blog.csdn.net/xt_xiaotian/archive/2010/06/04/5648388.aspx一、摘要 JSON 的全称为:JavaScript Object Notation,顾名思义,JSON 是用于标记 Javascript 对象的,JSON 官方的解释为:JSON 是一种轻量级的数据传输格式。本文并不详转载 2016-10-27 16:40:10 · 385 阅读 · 0 评论 -
用Pimpl(指向实现的指针)
条款22:当使用Pimpl(指向实现的指针)时,在实现文件里定义特定的成员函数 假如你曾经和过多的编译构建时间抗争过,你应该熟悉Pimpl(指向实现的指针)这个术语。这项技术是你可以把类的数据成员替换成一个指向实现类(结构)的指针,把原来在主类中的数据成员放置到实现类中,然后通过指针间接的访问这些数据。比如我们的Widget类是这样的:class Widget { ...转载 2018-10-10 17:53:34 · 715 阅读 · 0 评论 -
模板类与类模板、函数模板与模板函数等的区别
模板类与类模板、函数模板与模板函数等的区别函数指针 = 指向函数的指针指针函数=返回指针的函数数组指针=指向数组的指针指针数组=内容是指针的数组类模板=用来产生类的模板模板类=使用类模板产生的类函数模板=用来产生函数的模板模板函数=使用函数模板产生的函数后面转至https://www.cnblogs.com/wangduo/p/5559049.html ...转载 2019-05-08 10:12:04 · 4565 阅读 · 0 评论 -
BOOST_SYSTEM_NO_DEPRECATED
如何解决在编译时未定义对boost :: system :: system_category()的引用?我试图在Ubuntu 11.10上编译一个使用Boost库的程序。我安装了Ubuntu Repository的1.46-dev Boost库,但编译该程序时出现错误。undefined reference to boost::system::system_category()...原创 2019-08-07 11:18:14 · 927 阅读 · 0 评论 -
gdb coredump概述
gdb coredump进程崩溃的时候,coredump文件会将进程的内存映像以及寄存器、堆栈指针等信息保存下来以便使用gdb 调试分析。1. coredump文件生成开关ulimit -c0 代表 关闭coredump文件生成开关。可通过ulimit -c filesize/unlimited进行设置,其中filesize设置过小,使用gdb调试相应的coredump文件时会...原创 2019-09-20 17:18:39 · 311 阅读 · 0 评论 -
boost/archive serialization 序列化 结构体字符串相互转换
Serialization的中文解释是“串行化” 、“序列化”或者“持久化” ,就是将内存中的对象保存到磁盘中,等到程序再次运行的时候再读取磁盘中的文件恢复原来的对象。下面是一个序列化到字符串、字符串反序列化为结构体的例子//st.h文件结构体定义#include <string>#include <iostream>#include "boost/seri...原创 2019-10-08 16:07:30 · 3093 阅读 · 1 评论 -
StringCbCopy StringCchCopy
--------------------- 本文来自 艾斯曼 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/wangqiulin123456/article/details/8193933?utm_source=copy StringCbCopy函数用于拷贝string,且提供了目标缓冲区的大小作为参数,防止缓冲区溢出等安全问题。这个函数可用于替换以下...转载 2018-09-30 10:56:08 · 536 阅读 · 0 评论 -
jsoncpp
写了个webserver,同事要求用json解析。之前用过JsonCpp,现在都忘了,现在记录一下解析json串。 使用跨平台的开源库JsonCpp来解析Json。 1、下载jsoncpp下载地址: https://github.com/open-source-parsers/jsoncpp2、使用Jsoncpp包中的.cpp和.h文件解压上面下载的jsoncpp-master.zip文件,把原创 2017-10-18 16:45:20 · 768 阅读 · 0 评论 -
base64编解码
Base64是一种用64个字符来表示任意二进制数据的方法。 Base64是一种任意二进制到文本字符串的编码方法,常用于在URL、Cookie、网页中传输少量二进制数据。计算机中任何数据都是按ascii码存储的,而ascii码的128~255之间的值是不可见字符。而在网络上交换数据时,往往要经过多个路由设备,由于不同的设备对字符的处理方式不同,这样那些不可见字符就有可能被处理错误,这是不利于传输的。原创 2017-10-18 16:27:05 · 475 阅读 · 0 评论 -
mutable
mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。 在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。 我们知道,如果类的成员函数不会改变对象的状态,那么这个成员函数一般会声明成const的。但是,有些时候,我们需要在const的函数里面修改一些跟类状态无转载 2017-09-27 19:22:09 · 282 阅读 · 0 评论 -
explicit 隐式类类型转换
C++ 隐式类类型转换 《C++ Primer》中提到:“可以用 单个形参来调用 的构造函数定义了从 形参类型 到 该类类型 的一个隐式转换。”这里应该注意的是, “可以用单个形参进行调用” 并不是指构造函数只能有一个形参,而是它可以有多个形参,但那些形参都是有默认实参的。那么,什么是“隐式转换”呢? 上面这句话也说了,是从 构造函数形参类型 到 该类类型 的一个编译器的自动转换。下面通过代码来看转载 2017-09-27 19:15:47 · 438 阅读 · 0 评论 -
D8016 “/ZI”和“/Gy-”命令行选项不兼容
vs2017 调试中出现上述问题,需要改变/ZI命令行选项 或者 /Gy命令行选项, 进入“项目”–>“属性”–>“C/C++ –>“常规”–>“调试信息格式”–>选择“程序数据库(/Zi)”或“无” 或者 –>“代码生成”–>“启用函数集链接”–>选择“是 (/Gy) 或者两个都改 如果遇到其他的命令行选项不兼容,类似于上面到“C/C++”目录下的各个选项中修改。原创 2017-08-31 15:48:15 · 3431 阅读 · 0 评论 -
__declspec(dllimport)
是时候总结一下__declspec(dllimport)的作用了。可能有人会问:__declspec(dllimport)和__declspec(dllexport)是一对的,在动态链接库中__declspec(dllexport)管导出,__declspec(dllimport)管导出,就像一个国家一样,有出口也有进口,有什么难理解的呢?这是一种很自然的思路,开始我也是这样理解。但是在两年前的一个转载 2016-09-20 11:16:38 · 1206 阅读 · 0 评论 -
assert TRACE VERIFY
assert 接收一个表达式,如果这个表达式为TRUE,则无动作,否则中断当前程序执行,输出诊断信息。在的debug版状态下出现。在release版本中不计算传入的表达式。 TRACE 接收跟printf一样的参数。在debug版的调试状态下出现,在debug窗口中输出诊断信息。在release版本中不计算传入的表达式。 ASSERT 它接收一个表达式,如果转载 2016-09-19 17:13:02 · 406 阅读 · 0 评论 -
按位取反
一个byte 8位的取反方法最快速方法,查表static const unsigned char BitReverseTable256[] = { 0x00, 0x80, 0x40, 0xC0, 0x20, 0xA0, 0x60, 0xE0, 0x10, 0x90, 0x50, 0xD0, 0x30, 0xB0, 0x70, 0xF0, 0x08, 0x88, 0x48, 0xC8, 0原创 2016-06-01 17:40:10 · 3436 阅读 · 0 评论 -
大端模式小端模式
什么是大端和小端 大端小端是字节在内存中的存储的顺序。 (自己理解、方便记忆)从低地址开始到高地址,如果先存高位字节,那么就是大端模式,如果是先存低位字节,就是小端模式。当然是针对至少占用两个字节的数据来说,如果是只占用一个字节,就没有大端小端问题了。 另外网络字节顺序是大端模式。 大端小端各自优势 小端模式 :强制转换数据不需要调整字节内容,1、2、4字节的存储方式一样。 大端模式 :原创 2016-05-17 09:51:13 · 648 阅读 · 0 评论 -
可变参数函数
C/C++中可变参数函数的实现在C语言的stdarg.h头文件中提供了三个函数va_start, va_end,va_arg和一个类型va_list。利用它们,我们可以很容易实现一个可变参数的函数。首先简单介绍一下这三个函数。假设现在有一个名为f的函数,其函数定义为:void f(int a, int b, …) 那么,在函数的内部,为了获得这些可变参数,就需要利用到va_start、va_arg转载 2017-10-17 09:43:54 · 376 阅读 · 0 评论 -
C/C++中可变参数的原理
要理解可变参数,首先要理解函数调用约定, 为什么只有__cdecl的调用约定支持可变参数,而__stdcall就不支持?实际上__cdecl和__stdcall函数参数都是从右到左入栈,它们的区别在于由谁来清栈,__cdecl由外部调用函数清栈,而__stdcall由被调用函数本身清栈, 显然对于可变参数的函数,函数本身没法知道外部函数调用它时传了多少参数,所以没法支持被调用函数本身清栈(__std转载 2017-10-17 09:49:31 · 716 阅读 · 0 评论 -
格式化输出
%a 浮点数、十六进制数字和p-记数法(C99)%A 浮点数、十六进制数字和p-记法(C99)%c 一个字符(char)%C 一个ISO宽字符%d 有符号十进制整数(int)(%ld、%Ld:长整型数据(long),%hd:输出短整形。) %e 浮点数、e-记数法%E 浮点数、E-记数法%f 单...转载 2018-08-08 15:52:07 · 232 阅读 · 0 评论 -
GDI+画罗盘
#include "gdiplus.h"using namespace Gdiplus; #pragma comment(lib, "gdiplus.lib")ULONG_PTR m_gdiplusToken;GdiplusStartupInput gdiplusStartupInput;SizeF GetTextBounds(const Gdiplus::Font& font,cons...原创 2018-06-19 12:09:30 · 679 阅读 · 0 评论 -
Eigen C++矩阵库
Eigen是一个C++线性运算的模板库:他可以用来完成矩阵,向量,数值解等相关的运算。(Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.)Eigen库下载 官网: http://eigen.tuxfamily.org/in...原创 2018-06-22 10:18:21 · 592 阅读 · 0 评论 -
C++智能指针简单剖析
C++智能指针简单剖析原文链接 https://www.cnblogs.com/lanxuezaipiao/p/4132096.html导读最近在补看《C++ Primer Plus》第六版,这的确是本好书,其中关于智能指针的章节解析的非常清晰,一解我以前的多处困惑。C++面试过程中,很多面试官都喜欢问智能指针相关的问题,比如你知道哪些智能指针?shared_ptr的设计原理是什么?如果让你自己设...转载 2018-03-02 09:24:41 · 184 阅读 · 0 评论 -
symlink readlink link建立、读取,使用readlink获取当前程序目录
symlink 函数和 readlink 函数主要是针对符号链接文件的操作。symlink 函数用来创建符号链接文件,和 link 文件是对应的。readlink 函数用来读取链接文件本身的内容(也就是符号链接指向的文件的文件名)。头文件: #include 函数原型:int symlink(const char* actualpath,const char* symp原创 2018-02-06 09:31:23 · 1313 阅读 · 0 评论 -
c++文件读写 fstream
在看C++编程思想中,每个练习基本都是使用ofstream,ifstream,fstream,以前粗略知道其用法和含义,在看了几位大牛的博文后,进行整理和总结:这里主要是讨论fstream的内容:[java] view plain copy#include ofstream //文件写操作 内存转载 2018-02-06 09:31:14 · 1353 阅读 · 0 评论 -
c++class default function
类的四个默认函数父子类构造函数问题父子类析构函数问题拷贝构造函数的深浅copy赋值函数的深浅copyC++类有四个默认函数分别是:(Effective C++》中提到四个)1、默认构造函数;2、默认拷贝构造函数;3、默认析构函数;4、赋值运算符函数;// 这两个类的效果相同class Empty{}class Empty{public原创 2018-01-11 15:04:31 · 901 阅读 · 0 评论 -
值得推荐的C/C++框架和库
值得推荐的C/C++框架和库转载 2017-11-28 17:07:25 · 239 阅读 · 0 评论