
写代码中遇到的问题以及总结的经验
文章平均质量分 52
写代码中遇到的问题及解决方法
杨金牛的技术笔记
编程是一门艺术,一门需要用心学习的艺术。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
记录一次优化运行时间的经验,QTableWidget竟有这么大的坑
前两天接到一个任务:一个VS2015 + qt5 + osgEarth实现的项目,在向osgEarth场景中添加卫星时,用时过长。经过上面的操作,再运行,只花费了一秒多,哈哈哈哈完美!原创 2023-04-19 14:06:35 · 688 阅读 · 0 评论 -
C++类设计和实现的九大最佳实践
换句话说,如果被线程访问的对象的状态没有改变会怎么样?代码库中充斥着嘈杂的注释和不正确的注释,促使程序员忽略所有的注释,或者采取积极的措施隐藏它们。也许所面对的类控制了系统中太多的其他类,并且已经超出了应有的逻辑,成为了一个无所不能的类。新的C++标准实际上简化了许多令人沮丧的细节,提供了新的现代方法来改进C++代码,但让开发人员认识到这一点并不容易。实际上,一个主要缺点是,当为了修复bug或添加新特性而更改重复代码的实例时,所有对应的代码必须同时更改。如果一个类的实例是不可变的,那么该类就是不可变的。原创 2023-04-18 23:14:43 · 262 阅读 · 0 评论 -
c、c++中#pragam once作用是什么?
而#pragma once方式却不受一些较老版本的编译器支持,一些支持了的编译器又打算去掉它,所以它的兼容性可能不够好。方式一受c/c++语言标准支持,它不仅可以保证同一个文件不会被包含多次,也能保证内容完全相同的两个文件(或者代码片段)不会被不小心同时包含。但如果不同头文件中的宏名不小心“撞车”,可能就会导致你看到头文件明明存在,但编译器却硬说找不到声明的状况——这种情况有时非常让人郁闷。而且使用方式一时,编译器每次都要打开头文件才能判断是否重复,所以在大型项目中编译时间相对较长,方式二就应运而生。原创 2023-04-18 11:10:11 · 527 阅读 · 0 评论 -
编译linux版本osg osgearth 问题记录
CMake自动生成的Makefile不仅可以通过make命令构建项目生成目标文件,还支持安装(make install)、测试安装的程序是否能正确执行(make test,或者ctest)、生成当前平台的安装包(make package)、生成源码包(make package_source)、产生Dashboard显示数据并上传等高级功能,只要在CMakeLists.txt中简单配置,就可以完成很多复杂的功能,包括写测试用例。里面是一条条的命令,这也是为什么叫批处理的原因,批处理命令。原创 2023-04-10 14:11:28 · 1038 阅读 · 0 评论 -
记录一次使用qt多线程优化运行时间的经验
我急中生智又想到一个办法:Qt中主线程一直在刷新界面,主线程堵塞了,界面才会出现延迟,那我要是再定义一个与主线程异步的子线程执行算法,并将计算结果刷新到界面上,那用户就不会感受到延迟了,最多就是要等待结果刷出来,并不会影响下面的操作;但当我在网上搜索答案时,看到说Qt中只能在主线程(也就是GUI线程)中刷新界面,要是在子线程中刷新的话会有错误发生,所以我就将刷新界面的代码挪到子线程中,运行没有报错,完美!运行之后发现运行时间确实减少了,但是也很有限,当循环次数较多时,界面还是会感到延迟,那怎么办?原创 2023-04-18 11:16:14 · 1201 阅读 · 0 评论 -
记录一次使用容器遇到的问题
调试后发现,使用下标遍历容器时,当删除一个元素时容器的size就会变小一个,删除n个就会变小n个,这样最后n个循环就不会进行,所以删除不掉最后n个元素;运行后发现,如果容器中含有多个name==sorName的元素,且有的在容器末尾,那就会存在末尾的几个不会被删除的情况;原创 2023-03-07 11:11:05 · 107 阅读 · 0 评论