- 博客(17)
- 收藏
- 关注
原创 linux命令学习
进入/tmp文件夹:cd /tmp,cd的意思是Change Directory,中文可理解为 “更改目录”。代码写完后,按Ctrl + X,然后按Y确认保存,最后按Enter键退出nano。查看当前目录下的内容:ls -l, ls的全称是list,-l 是选项(option),其全称是 long(英文意为 “长格式”),用于以详细列表形式展示文件信息。mkdir build:这个命令会在当前工作目录下创建一个名为 build 的新目录,mkdir 是 "make directory"(创建目录)的缩写。
2025-09-01 11:16:56
185
原创 软件研发的一些理解
5. Ubuntu中,.cpp文件修改后,要重新编译才能生效:g++ -std=c++17 openxlsx_read.cpp -o openxlsx_read -I/usr/local/include/OpenXLSX -I/tmp/ZXY/OpenXLSX-master/OpenXLSX -lOpenXLSX。OpenXlsx的编译方式查看保存的图片,注意动态库和静态库的cmake命令有区别,动态库要显示指定出type的类型,在其CMakeLisit文件中详细说明了。编译完之后,再运行。
2025-08-28 17:08:32
408
原创 写OpenXlsx接口类过程中的一些收获
vector的push_back和emplace_backs的差别。vector的reserve和resize的区别。少写不重要的判断,耗时积少成多。理解浅拷贝和深拷贝的区别。
2025-08-28 17:07:36
96
原创 git常用命令总结-自用
结果:从20250721-zhouxinyu-setPartMeshType(自己建的分支)分支切换到了release/V2025R1C06分支,且该分支与远程对应分支origin/release/V2025R1C06保持同步(up to date)。命令含义:创建一个名为 release/V2025R1C06 的本地分支,并切换到该分支。需要设置上游分支,因为新创建的分支20250801-zxy-setPartMeshType未在远程仓库中存在,git未自动将其与远程关联,所以首次推送时需要显示指定。
2025-08-28 17:05:51
505
原创 Openxlsx编译链接方法
它的作用是在程序编译和链接阶段告诉编译器:“这些函数 / 类的实现不在当前项目中,而是在某个.dll 里,链接时请关联对应的.dll”。对应目录下有Release和Debug模式下各自的.lib和.dll文件,注意release和debug的不一样,debug模式下的.dll和.lib结尾都有d,release没有。举例:同样是 10 个程序依赖 1MB 的 OpenXLSX.dll,内存中仅需加载 1 份 .dll 代码(1MB),总内存占用仅增加 1MB(远小于静态链接的 10MB)。
2025-08-28 17:01:18
1123
原创 Linux编译OpenXlsx库流程
完成这些后,会生成接口类的动态库,debug模式下的libreadXLSXLib_d.so(后缀_d)和release模式下的libreadXLSXLib.so。make 编译后,动态库默认生成在构建目录(如 build_debug 或 build_release)中,而 make install 会将其复制到 CMakeLists.txt 中 install 指令指定的路径(如 lib/debug 或 lib/release),方便后续管理和引用。
2025-08-28 16:51:11
846
原创 如何将封装好接口类导出动态库.DLL和.lib
再将接口类的.h和定义的导入导出的宏文件,和openxlsx的头文件放到一个目录下,不再作为单独的文件。接口类的.cpp先别删除,还要通过.h利用.cpp的函数实现导出.dll文件。确保配置平台一致(release/debug、看清x64还是x86)
2025-08-28 16:40:23
119
原创 Openxlsx优化前后测试代码对比
运行测试代码(a)后发现,OpenXlsx速度优势非常明显,但内存占用过大,所以研究了一下内存占用过高的原因:测试代码(a)中每次调用 worksheet()都会创建 XLWorksheet 并缓存其 XML 内容(通过 m_xmlDoc)。一开始使用OpenXIsx库进行测试时,发现open接口的速度非常快(64MB文件只用几ms),深入了解后得知OpenXlsx采用的是“延迟加载”策略,当调用Open时库实际上只做验证文件格式、解析文件结构、初始化内部数据结构的操作。
2025-08-28 16:22:21
223
原创 PAT 1049 Counting Ones
其次,存在规律是:每10个数里个位就出现1个1(1、11、21........),每100个数里十位就出现10个1(110、120、130........),每1000个数百位就出现100个1。所以123有12个10,所以个位上先有12个1,又因为此时只考虑了前12*10=120个数,剩下120-123中还存在个位数上有1的数1个,ans=12+1=13。同理123有1个100,所以十位上先有10个1,又因为只考虑了1-100,剩下101-123还有十位上有1的数字10个,所以ans=13+20。
2024-10-24 16:08:58
190
原创 C语言排序|冒泡排序、选择排序、插入排序
比如初始数组:2 3 4 1第一次冒泡:2 3 1 4,最右边的4确定是最大的了第二次冒泡:2 1 3 4,在最右边4确定是最大的基础上,确定了第二大的是3第三次冒泡:1 2 3 4,在最右边4确定是最大的基础上,第二大的是3的基础上,确定第三大的数字是2,顺其自然最小的1也被排出来了。
2024-06-04 20:17:45
303
原创 字符串的输入
如果一维char数组长度不足的情况下,用是scanf写入字符串可能导致数组越界。利用此方法,可以避免读到空格就中止字符串继续读入的尴尬。和scanf读入字符串相同相同。
2024-06-01 17:58:47
836
原创 库函数和头文件
C/C++标准中规定的,编译器自带的函数,不用自己再去单独写实现这一功能的函数。如下面的头文件中,cmath就是数学库函数,可以实现求平方根,绝对值等等功能。
2024-06-01 11:46:46
655
原创 break语句和continue语句
break出现在循环体中(for、while、do while),其作用是跳出循环;注意if是条件分支语句,不是循环语句;多重循环情况下,break只能跳出内层循环。
2024-05-31 18:04:50
178
原创 while循环和do while 循环
每执行一次循环之后们都要判断“表达式”的值是否为真,即执行循环在判断条件之前,如果为真就继续循环,如果为假,就停止循环。如果希望循环至少执行一次,就可以使用do while循环。例:输出1到10000以内所有2的整数次幂。} while(表达式);
2024-05-31 17:35:26
219
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅