- 博客(49)
- 资源 (31)
- 收藏
- 关注
原创 Map函数与vector<pair<int,int>>函数的使用方法
map 在插入元素时,通过比较键(key)的大小进行排序,实现二叉树自平衡。使用方式和map一致,但其支持重复的键,在插入时不允许使用数组方式的插入,也就是上文方法中添加数据的第4种方式。1.要注意end方法,其放回的并不是最后一个元素的指针,而是最后一个元素后一位的指针。11.resize 改变当前使用数据的大小,如果它比当前使用的大,则填充默认值。vector<pair<int,int>> 可以使用vector的方法;如果想使用相同的键,那么就要使用 multimap,其可以存放相同的键。
2024-11-07 13:54:20
1194
原创 Struct与Class定义变量的区别
而使用class定义的变量,默认情况下,所有成员都是私有的(private),必须通过成员函数或友元函数来访问。在第一个示例中,struct定义的变量A中的成员变量x默认为public,因此可以直接访问和修改。而在第二个示例中,class定义的变量A中的成员变量x默认为private,需要通过公开的成员函数setX来设置其值。2、使用class定义的变量还可以使用访问修饰符(public、protected、private)控制成员的访问权限,更加严格地限制成员的访问范围。示例一:struct 定义变量。
2024-11-05 18:23:40
809
原创 C中定义字符串有下列几种形式
注意:字符串指针*m指向字符串常量,不能用*(m+1)='o'修改此常量,但是数组可以采用*(m+1)='o'修改此字符串,因为这个字符串常量放在常量区不能被修改。编译器会把数组名m看作是数组首元素的地址&m[0]的同义词,m是个地址常量。可以用m+1来识数组里的下一个元素,但不能使用++m,增量运算符只能在变量前使用, 而不能在常量前使用。m[40]在计算机内存中被分配一个有40个元素的数组(其中每个元素对应一个字符,还有一个附加的元素对应结束的空字符'\0')。多余的元素会初始化为'\0'。
2024-11-05 18:09:52
383
原创 异常处理与命名空间
5、try-catch结构中与throw可以出现在同一个函数中,也可以不在同一个函数中,throw抛出异常信息后,首先在本函数中寻找与之匹配的catch,如果在本层无try-catch结构或者找不到与之匹配的catch,就转到其上一层去处理,如果其上一层也无try-catch]结构或者找不到与之匹配的catch,则再转到更上一层的try-catch结构去处理;注意事项:异常指定是函数声明的一部分,必须同时出现在函数声明和函数定义的首行中,否则在进行函数的另一次声明时,编译系统会报告“类型不匹配”;
2024-11-05 17:39:37
294
原创 头文件的使用风格
注意事项:自己定义的头文件应该用""形式,因为这些头文件放在工程目录(也就是编译器的当前目录)下;所有头文件都应该使用 #define 来防止头文件被多重包含,命名格式当是:___H_为保证唯一性, 头文件的命名应该基于所在项目源代码树的全路径。在#include中插入空行以分割相关头文件,C库,C++库,其他库的.h和本项目内的.h是个好习惯;前置声明能够节省不必要的重新编译的时间,#include使代码因头文件中无关的改动而被重新编译多次。
2024-11-05 17:32:59
297
原创 进程之间的数据共享
3、主代码与子进程之间共享变量,方式有很多种:管道、消息队列、共享内存和套接字等方式,共享变量若是string类型,则需要将其转化为char []形式,因为string空间是不固定的,无法解析其大小;2、关于深度模型预测这块代码,若是子进程里面用到模型预测,一定需要模型在子进程中进行声明与初始化,否则代码出错,同时模型预测会混乱。该函数用于将共享内存从当前进程中分离。注意,将共享内存分离并不是删除它,只是使该共享内存对当前进程不再可用;启动对该共享内存的访问,并把共享内存连接到当前进程的地址空间;
2024-11-05 16:54:18
563
原创 c++中4种的智能指针相关
为了配合shared_ptr而引入的一种智能指针,因为它不具有普通指针的行为,没有重载operator*和->,它的最大作用在于协助shared_ptr工作,像旁观者那样观测资源的使用情况。使用weak_ptr的成员函数use_count()可以观测资源的引用计数,另一个成员函数expired()的功能等价于use_count()==0,但更快,表示被观测的资源(也就是shared_ptr的管理的资源)已经不复存在。shared_ptr使用引用计数,每一个shared_ptr的拷贝都指向相同的内存。
2024-11-05 16:21:55
847
原创 stringstream用法
因为stringstream似乎不打算主动释放内存( 或许是为了提高效率 ),但如果你要在程序中用同一个流,反复读写大量的数据,将会造成大量的内存消耗 ,这时候需要调用 stream.str("")。3、在大量并行类型转换的程序中, stringstream函数运行效率比较低,同时在多线程中有可能会报错,此时建议尽可能避免用stringstream,可以改sprintf()(charA[]与int之间转化,需要在char*转化为string),atoi,atof等函数。存在内存分配互斥问题导致效率降低。
2023-03-02 19:14:55
628
原创 Vector()内存释放的问题
注意事项:vector从前存储了大量数据,比如10000000,经过各种处理后,现在只有100条,那么向清空原来数据所占有的空间,就可以通过这种交换技术swap技法就是通过交换函数swap(),使得vector离开其自身的作用域,从而强制释放vector所占的内存空间。所有空间在vector析构时回收;在一个应用中,可能会需要向一个vector中插入很多记录,比如说1000条,为了避免在插入过程中移动内存,实现向系统预订一段足够的连续的空间。方法三:加一对大括号是可以让tmp退出{}时,自动析构;
2023-02-21 16:55:53
588
原创 c++中list容器的用法
list是一种序列式容器,list的每个节点有3个域:前驱元素指针域、数据域和后继元素指针域,这就构成了双向循环链,list元素节点并不要求在一段连续的内存中,不支持快速随机存取;
2022-12-28 18:49:46
703
原创 c++中函数屏蔽和函数参数屏蔽
在定义函数入参时屏蔽函数参数b:void Function(int a,int /* b */ =0 );若是不使用函数Function(int,int),可以采用#define Function (void)在函数内将函数参数b作废:(void) b / static_cast(b);若是不使用函数Function()(函数没有入参),可以采用#define Function() 0。在函数Function(a,b)中没有使用参数b时,有部分编译器会告警;
2022-11-14 15:34:30
1851
原创 C++头文件(xxx.h)与源文件(xxx.cpp)的关系
在源文件(xxx.cpp)中进行变量的定义、函数的实现(除了在x.h文件中可以定义const/static对象、内联函数(inline)、结构体(struct)、类(class)、枚举型(enum),其他类型都不能在x.h文件中定义);在源文件(xxx.cpp)中引用头文件(xxx.h)时,一定排在本头文件(xxx.h)里面会用到的其他头文件内容的头文件后面;只适用于包含了其头文件(xx.h)的源文件(.cpp:不只是xx.cpp文件还有其他命名的源文件)中,
2022-11-06 23:15:24
2653
转载 深度学习中各种图像库的图片读取方式
这里写自定义目录标题欢迎使用Markdown编辑器功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdow
2021-04-02 15:23:10
2548
1
转载 深度学习中各种上采样函数
目录 Upsample: Interpolate,resize: Transposed convolution,deconv: Unpool: Pixelshuffle: Upsample: Pytorch example: import torchimport torch.nn as nnimport torch.nn.functional as Finput = torch.arange...
2021-03-18 11:20:11
901
原创 C++中的输入函数:cin>>、cin.get()、cin.getline() 区别与联系
cin>>函数:输入结束条件:遇到Enter、Space、Tab键,保留Enter、Space、Tab键在缓存区对结束符的处理 :输出时丢弃缓冲区中结束符(Enter、Space、Tab),下次直接读取缓冲区剩余的数据。例如:输入abcd efgh时:输出: abcdefgh第一次读取字符串时遇到空格则停止了,将abcd读入str1,并舍弃了空格,将后面的字符串给了第二个字符串str2。cin.get()函数:三种格式:cin.get(), cin.get(cha
2021-03-07 23:51:08
1613
原创 C语言中的输入函数:getchar()、get()、scanf()函数的区别
例如:scanf("%c%c%c",&a,&b,&c):对输入“x y”时,x在变量a中,空格在变量b中,y在变量c中。注意,控制串中的其它字符,包括空格、制表符和新行符,用于从输入流中匹配并放弃字符作用。但是scanf("%s",str)不能接受含有空格符的字符串,scanf()函数取数据是遇到回车、空格、TAB就会停止,剩余字符串将留在缓冲区中。例如:scanf("%dt%d",&x,&y): 对于输入10t20时,将把 10 和 20 分别放到 x 和 y 中,t 被放弃,因为 t 在控制串中。
2021-03-07 23:47:23
7667
1
原创 Ubuntu里安装软件/动态库的注意事项
主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如前介绍,lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件.缓存文件默认为/etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表;1、往/lib和/usr/lib里面加东西,是不用修改/etc/ld.so.conf的,但是完了之后要调一下 ldconfig,不然这个library会找不到;
2021-03-07 23:40:06
1095
原创 在Windows/Linux系统中将pip源更换到国内镜像,加速安装
例如:从清华镜像安装pandas库:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pandas。可以在使用pip的时候,加上参数-i和镜像地址(如https://pypi.tuna.tsinghua.edu.cn/simple);(4)中国科学技术大学 https://pypi.mirrors.ustc.edu.cn/simple/(3)清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
2021-03-07 23:30:52
559
原创 linux系统环境设置和终端登录方式
为用户设置系统环境信息的文件,用户登录时被执行,并从/etc/profile.d目录下配置文件中搜集shell的设置,profile文件的修改对每个用户都生效。profile文件生效的方式:重启电脑/source profile。为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取。bash.bashrc文件修改对每个用户都生效,生效方式:打开一个shell(在终端输入bash)即可,或者在终端上输入$source bash.bashrc。
2021-03-07 23:24:42
1518
camshift.txt
2019-05-30
文件下多个子文件图片的删除
2019-05-07
多个视频剪辑成相应文件下子图片
2019-05-07
用python语言进行文件重命名
2019-05-07
KCF目标跟踪的c++代码程序,其中修改了抗遮挡的部分,使其有“记忆性”的功能;
2019-05-07
OpenCV实现图像上添加汉字
2019-05-06
图书管理系统(C++)
2019-05-06
火车订票系统
2019-05-06
基于MFC框架编写了打印的程序
2019-05-06
vs2013\vs2015软件卸载后,清除系统盘的文件残留的小程序
2019-04-23
编译opencv_contrib的驱动包:opencv_ffmpeg.dll、opencv_ffmpeg_64.dll等
2019-04-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人