C++
时日随心
这个作者很懒,什么都没留下…
展开
-
pcl开源库读取文本格式pcd文件过慢问题解决
最近在使用pcl库研究点云处理分析,中间结果以文本格式的pcd文件存储,直接使用pcl::io::loadPCDFile()函数读取文件,遇到了pcd文件读取过慢,耗时太长的问题,当数据量较大时这个问题更加凸显。查阅pcl源代码(pcl-1.10.1)发现,真正执行文本格式pcd文件读取的函数 int pcl::PCDReader::readBodyASCII()中,使用getline()逐行读取文件内容,根据以往经验想当然认为是这行代码拖慢了速度,于是进行一番改造,自己建一个缓冲区(缓冲区长度为204原创 2021-12-15 15:32:43 · 2307 阅读 · 3 评论 -
CGAL多面体布尔运算
需求说明:有立方体的八个顶点坐标,需要判断两个或多个立方体是否有交集。根据百度搜索结果,CGAL可以提供立方体的布尔运算功能,但是需要根据已知的坐标构建该库的多面体对象。以下内容参考博客CGAL多面体布尔运算 - 码农岛CGAL中的Polyhedron并不能直接进行多面体的布尔运算,真正实现布尔运算的结构是CGAL::Nef_polyhedron_3<Kernel>(包含用于二元布尔运算所需要的结构信息),按照CGAL的官方教程,用Polyhedron来构造Nef_Polyhedr.原创 2021-11-19 14:41:58 · 2600 阅读 · 1 评论 -
解决win10上使用mingw编译gdal出现Argument list too long的错误
在windows平台上编译mingw版本的gdal时出现了/bin/ar: Argument list too long的错误,如下图所示,这是ar给出的错误提示。此错误是由于给ar传的参数中包含了太多的绝对路径,修改GNUmakefile文件内容,使传给ar和g++的参数中*.o路径字符串中不包含绝对路径即可。...原创 2021-11-18 09:36:14 · 798 阅读 · 0 评论 -
mingw版本log4cplus库Qt中编译错误:undefined reference to log4cplus::detail::macro_forced_log ......
在Qt中使用mingw版本的log4cplus库时出现编译错误如下:undefined reference to `log4cplus::detail::macro_forced_log(log4cplus::Logger const&, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*, in原创 2021-11-18 09:26:53 · 1347 阅读 · 0 评论 -
gdal 2.x GDALLoadRPCFile()无法解析或执行失败问题解决
windows平台使用Visual Studio 编译的 GDAL,由 1.X 升级到 2.X 后,出现GDALLoadRPCFile()函数无法解析的问题,简单地增加 CPL_DLL 导出符后,虽然解决了无法解析的问题,但实际执行时函数返回字符串为空,经过跟踪源码发现该函数使用的参数 (const CPLString& osFilePath)在运行时传值错误,原因不明(猜测与 CPLString 是GDAL自定义的C++类,而非C内置类型有关),导出时因为修改其参数类型为 const char *原创 2021-09-30 11:39:31 · 718 阅读 · 4 评论 -
C/C++的类型安全
原文链接:http://blog.pureisle.net/archives/985.html3什么是类型安全?类型安全很大程度上可以等价于内存安全,类型安全的代码不会试图访问自己没被授权的内存区域。“类型安全”常被用来形容编程语言,其根据在于该门编程语言是否提供保障类型安全的机制;有的时候也用“类型安全”形容某个程序,判别的标准在于该程序是否隐含类型错误。类型安全的编程语言与转载 2015-08-21 14:45:37 · 553 阅读 · 0 评论 -
浅析AOP与OOP
原文链接:http://blog.csdn.net/a1314517love/article/details/11847087AOP为Aspect OrientedProgramming的缩写,意为面向切面编程。那什么又是面向切面?它与仅有一字之差的OOP又有着什么样的区别与联系?所谓的面向切面编程其实是对业务逻辑又进行了进一步的抽取,将多种业务逻辑中的公用部分抽取出来做成一种服务(比如日转载 2015-07-23 10:10:25 · 606 阅读 · 0 评论 -
C++ 虚函数表解析
原文链接:http://blog.csdn.net/haoel/article/details/1948051/前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技转载 2015-07-22 19:33:31 · 542 阅读 · 0 评论 -
如何将a、b的值进行交换,并且不使用任何中间变量?
可以采用a、b之间的加减运算来实现:a = a + b; b = a- b; a = a - b;这样做的缺点是如果a、b是比较大的两个数,进行相加求和时就会超界。用异或(位运算符^,也即互斥,对应位只有一个为1时结果为1,否则为0)则不用担心越界问题:a = a^b; b = a^b; a = a^b;注: 摘自《程序员面试宝典》转载 2015-07-22 12:34:07 · 6971 阅读 · 1 评论 -
临界区,互斥量,信号量,事件的区别
原文链接:http://blog.csdn.net/bao_qibiao/article/details/4516196四种进程或线程同步互斥的控制方法1、临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。 2、互斥量:为协调共同对一个共享资源的单独访问而设计的。 3、信号量:为控制一个具有有限数量用户资源而设计。 4、事 件:用来通知转载 2015-07-27 09:56:33 · 494 阅读 · 0 评论 -
std::vector删除重复元素和查找
原文网址:http://blog.csdn.net/nowen/article/details/5509525需要这样一个容器,可以自动地删除重复元素,并能很方便地进行查找操作!似乎采用树型结构存储的std::set是最佳之选,但到后面才发现,存进去容易,取出来麻烦。不得已又回去用std::vector,就在网上找了找,vector是如何实现类似set的unique和f转载 2013-02-19 11:48:32 · 19080 阅读 · 1 评论 -
stl string常用函数
原文地址:http://hi.baidu.com/baowup/blog/item/3a27465c86d71546faf2c066.html/cmtid/de1ef3f0de7554a0a40f52f7string类的构造函数:string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化此外,str转载 2013-01-26 11:22:45 · 475 阅读 · 0 评论 -
多个数据求平均数防止溢出
问题:有数组Val[n],Sum = Val[0] + Val[1] + …… + Val[n-1],求average = Sum/n,当n很大时,Sum可能的溢出怎么处理?解决:double ever;for (i = 1, ever = src[0]; i { ever = ever + (src[i] - ever) / (i + 1);} 比如:转载 2012-08-29 21:38:04 · 3619 阅读 · 0 评论