c++11
全麦Logan
这个作者很懒,什么都没留下…
展开
-
c++实现解压+解包tar.gz文件
解析tar.gz原创 2022-09-29 12:20:05 · 4575 阅读 · 0 评论 -
从database里将blob数据dump到file中
sqlite blob dump原创 2022-08-03 14:23:01 · 197 阅读 · 0 评论 -
vector之resize连续执行的效果
vector resize原创 2022-08-02 17:13:37 · 246 阅读 · 0 评论 -
sqlite3 PRAGMA 翻译
sqlite3 PRAGMA翻译 2022-07-05 11:59:54 · 845 阅读 · 0 评论 -
sqlite3 dbconfig说明
enable_fkey: 此选项用于启用或禁用 外键约束的实施。应该有两个额外的论点。第一个参数是一个整数,0 表示禁用 FK 强制,正数表示启用 FK 强制或负数表示 FK 强制不变。第二个参数是一个指向整数的指针,其中写入 0 或 1 以指示 FK 强制在此调用之后是关闭还是打开。第二个参数可能是一个 NULL 指针,在这种情况下,不会报告 FK 强制设置。enable_trigger: 此选项用于启用或禁用触发器。应该有两个额外的论点。第一个参数是一个整数,0 表示禁用触发器,正数表示启用触发器,负数原创 2022-07-01 12:08:25 · 1227 阅读 · 0 评论 -
sqlite3 error: database is locked
database is locked原创 2022-06-15 16:35:13 · 1563 阅读 · 0 评论 -
关于宏里do while(false)的用法
关于宏里do while(false)的用法原创 2022-06-01 16:26:55 · 375 阅读 · 0 评论 -
c++判断矩形和线段是否相交或包含
依据数学理论:如果矩形 rec1 和 rec2 的水平边投影到 x 轴上的线段分别为 (rec1[0], rec1[2]) 和 (rec2[0], rec2[2])。根据数学知识我们可以知道,当 min(rec1[2], rec2[2]) > max(rec1[0], rec2[0]) 时,这两条线段有交集。对于矩形 rec1 和 rec2 的竖直边投影到 y 轴上的线段,同理可以得到,当 min(rec1[3], rec2[3]) > max(rec1[1], rec2[1]) 时,这两条原创 2021-09-29 11:07:05 · 1349 阅读 · 0 评论 -
valgrind统计函数执行时间
关键参数:--time-stamp,默认是no,改成yes,表示毫秒valgrand --tool=callgrind --time-stamp=yes原创 2021-09-16 10:44:43 · 582 阅读 · 0 评论 -
避免使用std::vector<bool>
事情是这样的:无意间看到代码里使用std::vector<bool>, 感觉有点怪异,没有使用过。于是查了一下,正好effective stl 不建议使用std::vector<bool>:做为一个STL容器,vector<bool>确实只有两个问题。第一,它不是一个STL容器。第二,它并不容纳bool。除此以外,就没有什么要反对的了。一个东西不能成为STL容器只因为会有人会说它是。一个东西要成为STL容器就必须满足所有在C++标准23.1节中列出的容器必原创 2021-09-02 21:46:07 · 1575 阅读 · 0 评论 -
pure-specifier on function-definition
事情是这样的:使用c++定义接口类时,需要声明纯虚析构,按道理我们应该实现这个纯虚析构,这样它的实现子类才能被触发析构。class Interface {public: virtual ~Interface() = 0 {}}这个例子在网上也说可以。。。。(其实使用VS2005编译没问题)但是实际上当使用gcc编译时,会报错pure-specifier on function-definition。所以必须定义成virtual ~Interface() = 0;理由没深原创 2021-07-28 16:25:29 · 856 阅读 · 0 评论 -
rapidjson使用document解析非json字符串时崩溃
事情是这样的...ros通信接口定义的类型是std_msgs::String,原本是只接收jsonstirng类型的字符串,但奈何下游总是随意发送各种各样的字符串,包括空string,jsonstring,string。实现接口里是通过rapidjson解析字符串的,结果在document.parse(str)时崩掉了,原因是rapidjson可以接受string,但后面如果使用hasMember,就必须是isObject() == true。// 修改前rapidjson::Documen原创 2021-07-16 13:51:05 · 1800 阅读 · 0 评论 -
c++ undefined reference to 构造函数
事情是这样的:写了一个普通的类,基本的实现都在头文件中,// data.hppclass data{public: data(); virtual ~data(){}public: int func1() { retunr 1+1; }}我在另外一个类中new 这个data类,但是报错了 “ undefined reference to “data::data()”意思就是无法调用你的构造函数。开始一头雾水,后来才发现,因为我没有创建源文件并且没有在原创 2020-12-27 20:45:01 · 6027 阅读 · 2 评论 -
c++11:unordered_map和pair合用的坑
事情是这样的,今天在编译的时候报错,很长,报错的地方是std::ordered_map的insert操作,但换成stdmap就没问题,大概是跟std::unordered_map和std::pair有关,我截取几段,error: no matching function for call to ‘std::pair<key, std::_List_iterator<long long int> >::pair(const key&, std::_List_ite原创 2020-12-22 17:37:25 · 7654 阅读 · 0 评论 -
c++11:std::bind
事情是这样的,有两个类,A类中的成员函数要作为B类的回调函数。查阅资料发现,c++11之前类的非静态成员函数,是不能作为回调函数的,编译器会报错。这是因为类的成员函数有一个隐藏的this指针,而回调函数的函数指针的参数是事先确定的,所以只要之前大部分是使用普通函数或静态函数作为回调指针的。c++11后 std::bind可以解决这个问题。例如:class A{public: bool make_callback(int a, std::string& s);//类的非静态成员函数}原创 2020-12-19 23:49:33 · 248 阅读 · 1 评论 -
c++11:using的使用
1.当子类想使用父类的非virtual函数时,可以使用using,例如class father{ void func();}class chilren public : father{ using father::func;}原创 2020-12-17 21:23:18 · 98 阅读 · 0 评论