C++
不二青衣
这个作者很懒,什么都没留下…
展开
-
读取txt文档并解析数据输出
去读txt文档,并按照指定格式,解析出指定内容原创 2023-09-28 20:11:32 · 212 阅读 · 0 评论 -
实现读取文件夹下所有文件
实现读取文件夹下所有文件原创 2023-02-16 15:26:31 · 216 阅读 · 0 评论 -
yaml配置文件
YAML配置文件原创 2023-01-29 16:42:32 · 264 阅读 · 0 评论 -
新建本地gti仓库并上传到远程
git仓库使用原创 2022-11-28 20:17:12 · 215 阅读 · 0 评论 -
c++提取文件名中数字
struct dirent *ptr; DIR *dir; std::string PATH1 ="/home/test/";//读取test文件内容 std::string PATH2 = "/home/test/";//输出结果到test std::vector<string> file_list;// dir=opendir(PATH1.c_str()); std::cout << "Read the...原创 2022-03-24 11:59:44 · 1240 阅读 · 0 评论 -
C++读取文件夹中所有的文件或者是特定后缀的文件
由于经常有读取一个文件夹中的很多随机编号的文件,很多时候需要读取某些特定格式的所有文件。下面的代码可以读取指定文件家中的所有文件和文件夹中格式为jpg的文件windows平台代码:#include <io.h>#include <fstream>#include <string>#include <vector>#include <iostream> using namespace std; //获取所有的文件名void原创 2022-02-18 14:45:21 · 4391 阅读 · 1 评论 -
C++ STL中vector的内存机制和性能分析
vecotr是动态数组,顾名思义他可以动态的增加自己的长度。内存机制:但是怎样的增加自己的长度?vector有两个函数一个是capacity()返回内存空间即缓冲区的大小,另一个是size()返回当前数组中数的数量。vector增加元素来说,当容量已经不能放进数据了,那么他会重新申请一块内存,把之前的内存利用复制构造函数复制到新的内存当中,然后把新添加的内容放入后面,另外此时的他申请的内存空间是原来空间的2倍,我测得是2倍缓冲区的释放vecotor占用的内存只增不减,erase只是将一段区间( e转载 2020-07-07 18:45:22 · 485 阅读 · 0 评论 -
c++ vector的内存释放
c++中vector的一个特点是: 内存空间只会增长,不会减小。即为了支持快速的随机访问,vector容器的元素以连续方式存放,每一个元素都挨着前一个元素存储。设想,如果每次vector添加一个新元素时,为了满足连续存放这个特性,都需要重新分配空间、拷贝元素、撤销旧空间,这样性能就会非常慢,所以,实际上分配时其容量要比当前所需容量更多,即vector预留了一些额外的存储区,这样就不必单独为每个新元素重新分配内存空间,减少开销。 另外,在vector中内存只增不减体现在 - 比如首先分配了10000个字节,然转载 2020-07-07 18:43:11 · 3189 阅读 · 0 评论 -
c++中capacity()函数用法
c++中capacity()函数用法size()指 目前存在的元素数。 元素个数capacity()指 容器能存储 数据的个数 容器 容量reserve()指定 容器 能存储数据的个数resize() 重新 指定 有效元素的个数 ,区别与reserve()指定 容量的大小当创建空容器时, 容量(capacity)为 0;当用完时,增加原容量的 1/2 (各编译器 可能存在差异 vs2010是这样的,mingw则 增加原容量 )–适用如 vector这种 元素连续转载 2020-07-07 18:40:42 · 4468 阅读 · 0 评论 -
Linux内存监视
内存监视的命令有两种:1.打开系统监视器查看内存,精确到M,在终端输入命令:gnome-system-monitor2.终端输出内存情况,精确到kb,在终端输入命令:top -d 1注:第2种方式打开后,按大写M,进行排序查看,避免进程跳动。...原创 2020-06-24 14:10:34 · 224 阅读 · 0 评论 -
结构体在内存中的对齐规则
一个结构体变量定义完之后,其在内存中的存储并不等于其所包含元素的宽度之和。例一: #include <iostream> using namespace std; struct X {原创 2020-06-23 10:48:06 · 392 阅读 · 0 评论 -
链表ListNode详细解释
ListNode刷LeetCode碰到一个简单链表题,题目已经定义了链表节点ListNode,作者很菜,好多忘了,把ListNode又查了一下struct ListNode { int val; //定义val变量值,存储节点值 struct ListNode *next; //定义next指针,指向下一个节点,维持节点连接 }· 在节点ListNode定义中,定义为节点为结构变量。· 节点存储了两个变量:value 和 next。value 是这个节点的转载 2020-06-06 08:54:21 · 31260 阅读 · 10 评论 -
make编译时找不到链接库
在编译时,报错如下:/usr/bin/ld: 找不到 -lcanlib/usr/bin/ld: 找不到 -lkvadblibcollect2: error: ld returned 1 exit statusCMakeFiles/demo.dir/build.make:113: recipe for target 'demo' failedmake[2]: *** [demo] Erro...原创 2020-02-18 11:25:14 · 2170 阅读 · 1 评论 -
视频转换处理终端命令
视频段截取:ffmpeg -i ./plutopr.mp4 -vcodec copy -acodec copy -ss 00:00:10 -to 00:00:15 ./cutout1.mp4 -y-ss time_off set the start time offset 设置从视频的哪个时间点开始截取,上文从视频的第10s开始截取-to 截到视频的哪个时间点结束。上文到视频的...原创 2020-02-13 11:44:57 · 189 阅读 · 0 评论 -
Eigen库函数
opencv与eigen的交互#include <Eigen/Dense>#include <iostream>#include <opencv2/core/eigen.hpp>#include <opencv2/opencv.hpp> using namespace std;using namespace cv;using name...原创 2019-09-30 10:52:32 · 3118 阅读 · 0 评论 -
Eigen子矩阵操作(block)
文章目录 1、子矩阵操作简介 2、块操作的一般使用方法 3、行子式和列子式 4、边角子矩阵 5、向量的子向量操作1、子矩阵操作简介子矩阵操作又称块操作,在矩阵运算中,子矩阵的提取和操作应用也十分广泛。因此Eigen中也提供了相关操作的方法。提取的子矩阵在操作过程中既可以用作左值也可以用作右值。2、块操作的一般使...转载 2019-09-30 10:46:29 · 14619 阅读 · 2 评论 -
常用ffmpeg命令
常用ffmpeg命令调整视频的宽和高:ffmpeg -i input_file -s 320*480 output_file将avi转换成mp4:ffmpeg -i input.avi out.mp4视频段截取:ffmpeg -i ./plutopr.mp4 -vcodec copy -acodec copy -ss 00:00:10 -to 00:00:15 ./cutout1.m...原创 2019-06-14 16:54:50 · 191 阅读 · 0 评论 -
C++对象的动态建立和释放
使用类名定义的对象(请查看:C++类的声明和对象的定义)都是静态的,在程序运行过程中,对象所占的空间是不能随时释放的。但有时人们希望在需要用到对象时才建立对象,在不需要用该对象时就撤销它,释放它所占的内存空间以供别的数据使用。这样可提高内存空间的利用率。在C++中,可以使用new运算符动态地分配内存,用delete运算符释放这些内存空间(请查看:C++动态分配内存(new)和撤销内存(delet...转载 2019-04-22 18:16:29 · 509 阅读 · 0 评论