- 博客(59)
- 资源 (6)
- 收藏
- 关注
原创 sqlite3 dbconfig说明
enable_fkey: 此选项用于启用或禁用 外键约束的实施。应该有两个额外的论点。第一个参数是一个整数,0 表示禁用 FK 强制,正数表示启用 FK 强制或负数表示 FK 强制不变。第二个参数是一个指向整数的指针,其中写入 0 或 1 以指示 FK 强制在此调用之后是关闭还是打开。第二个参数可能是一个 NULL 指针,在这种情况下,不会报告 FK 强制设置。enable_trigger: 此选项用于启用或禁用触发器。应该有两个额外的论点。第一个参数是一个整数,0 表示禁用触发器,正数表示启用触发器,负数
2022-07-01 12:08:25
1166
原创 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
1302
原创 valgrind统计函数执行时间
关键参数:--time-stamp,默认是no,改成yes,表示毫秒valgrand --tool=callgrind --time-stamp=yes
2021-09-16 10:44:43
545
原创 避免使用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
1508
原创 catkin屏蔽掉不想编译的package
事情是这样的:workspace/src下有多个package包,有时候只想不编译某个package。可以在不想被编译的package目录下新建了CATKIN_IGNORE的文件,不用写任何东东。返回到workspace目录下后执行catkin_make就不会编译带有CATKIN_IGNORE的package。...
2021-07-29 11:28:36
1272
原创 cmakelists设置相对路径
事情是这样的:linux环境下自己写了一个动态库,然后自己写了一个tool,依赖这个库。但在切换路径后,执行tool确找不到这个动态库了,知道是因为没设置RPATH。需要在cmakelists文件中两行1.set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)2.set_target_properties(${PROJECT_NAME} PROPERTIES INSTALL_RPATH "$ORIGIN/xxx")$ORIGIN代表编译生成的目录,也就是执行cm
2021-07-28 23:38:19
3405
原创 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
817
原创 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
1719
原创 解析$(shell git ls-files | grep -E ‘\.h$$|\.cpp$$|\.hpp$$|\\.c$$‘ | tr ‘\n‘ ‘ ‘)
事情是这样,最近在学习conan,发现一条命令,有点蒙,顺道温故一下shell命令Makefile文件里的一条命令如下:HEARD_SRCS = $(shell git ls-files | grep -E '\.h$$|\.cpp$$|\.hpp$$|\\.c$$' | tr '\n' ' ')开始拆分:1.git ls-filesgit 命令,递归显示.git同级目录下的文件信息。git ls-files [-z] [-t] [-v] (--[c
2021-05-13 18:57:49
292
原创 sqlite3_prepare_open和sqlite3_finalize是对应的
事情是这样的,就是写了点sqlite3的代码,包括create table和drop table例如void dropTabele(sqlite3 *db_handler, sqlite3_stmt* stmt, const std::string& table_name){ std::string drop_sql = "DROP TABLE IF EXISTS " + table_name; int drop_tatus = sqlite3_prepare_v2(db
2021-05-11 15:57:53
962
原创 ubutun16 安装企业微信
git clonehttps://gitee.com/wszqkzqk/deepin-wine-for-ubuntu.git (拉取代码) cd deepin-wine-for-ubuntu (进入上面下载的代码的位置) ./install.sh (执行安装命令) wget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin.com.weixin.work/deepin.com.weixin.work_2.4.1...
2021-03-11 15:23:41
152
原创 使用eigen时,不要使用auto作为类型赋值
现象是这样的,release和debug模式下,坐标xyz结果不同。发现是因为在使用eigen库函数进行操作,然后使用auto进行赋值时,结果与预期不一样,debug模式下没问题,release下循环不同的输入,结果都跟第一次的结果一样,不知其所以然。...
2021-02-05 15:18:18
505
原创 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
5867
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
7184
原创 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
217
1
原创 c++11:using的使用
1.当子类想使用父类的非virtual函数时,可以使用using,例如class father{ void func();}class chilren public : father{ using father::func;}
2020-12-17 21:23:18
85
原创 cmake不知道的事情汇总
1.find_package##find_package(PkgConfig)pkg_check_modules(xxx)include_diretories(${xxx_INCLUDE_DIRS})find_package有两种搜索模式:1.moduleFind<package>.cmake搜索CMAKE_MODULE_PATH路径下的Find<package>.cmake2.Config<packahe>OCnfig.cmake3.no
2020-12-17 19:52:51
423
原创 Mac下vmware fusion 12中的ubuntu系统磁盘扩容
Mac下vmware fusion 12中的ubuntu系统磁盘扩容转载至https://blog.csdn.net/zsx1314lovezyf/article/details/105445554添加硬盘内存虚拟机必须是关机状态进入虚拟机设置选择硬盘调整到自己想要的大小, 点击应用, 等待完成, 开启虚拟机进入系统安装gparted分区管理工具sudo apt-get install gparted打开分区工具 sudo gparted分配空间
2020-12-05 23:16:46
2246
1
原创 boost::lexical_cast和c++11 stod,stoi,stof性能对比
循环100w次,c++11的强转性能要优于boost的lexical_cast原因是lexical_cast内部会做很多异常判断。
2020-10-19 18:51:14
641
原创 c++单例模式用到std::once_flag
分享一篇关于单例模式比较清晰的博文,并且使用了std::once_flag的方式:https://www.cnblogs.com/xuhuajie/p/11647164.html单例模式分为饿汉和懒汉两种方式,大部分项目里都用懒汉这种方式,就算饿汉方式天然的线程安全,不需要考虑内存释放,但由于是饿汉方式使用不使用都会在申请内存,所以大家都想办法来优化懒汉方式。上面链接博文中总结的懒汉模式如下:class SingletonUsePtr2{ SINGLETON_CTOR(Si.
2020-08-18 17:45:55
3366
1
原创 cmake编译生成的so动态库后,无法找到依赖的第三方so, ldd not found
背景:有一个c++工程,编译后生成动态库libc++.so。新建一个c工程,封装上一个c++工程接口,编译后生成一个动态库libc.so。现象:make install后会将build里生成的libc.so和libc++.so拷贝到与build同级的lib目录中,在lib文件夹下执行 ldd libc.so 会找不到libc++.so,但是在build文件夹下执行 ldd libc.so就可以找到。解决:这跟rpath有关,rpath是so查找依赖库的路径。可以通过rea
2020-08-05 17:30:47
5673
原创 vscode python debug调试
新建一个launch.json{// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of existing attributes.// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [
2020-07-31 19:30:21
1356
原创 ubuntu16.04系统下总结一些依赖库 之opencv3.4.5
源码安装opecv3.4.5需要预先安装些依赖库,抽空总结一下。1.cmake,这个不多说了。2.build-essential,软件包,方便安装库时自动安装依赖的其他库,这个库ubunut一般自带。3.libgtk2.0-dev,gtk的开发包,gtk是一套跨多种平台的图形工具包,估计是opencv里显示图片界面的库需要这个库。4.libavcodec-dev,一个开源的编解码器库,用于视频和音频,估计是opencv里从视频里解析图片用的。5.libavformat-dev,为多路复用
2020-07-09 20:16:57
946
原创 pcl1.18.0和boost不同版本出现的问题
在安装pcl1.18.0这个版本时对应的boost版本出现了一些问题:1.对应boost1.58时出现undefined reference to `boost::filesystem::path_traits::dispatch(boost::filesystem::directory_entry const&, std::string&)'2.把boost换成1.68时出现fatal error: boost/uuid/sha1.hpp: No such file or d.
2020-07-08 14:43:01
2929
deepin.com.weixin.work_2.4.16.1347deepin0_i386.deb
2021-03-11
VC++网络通信编程实用案例
2010-07-21
VC++网络通信编程实用案例
2010-07-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人