自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 linux gcc 和 gdb 的用法

一、 gcc 用法1、gcc 的编译过程gcc的编译过程分为4个步骤:(1)预处理;(2)编译;(3)汇编;(4)链接编辑器 -> 源代码 *.c -> 预处理器 -> 预处理文件*.i -> 编译器 -> 汇编文件*.s -> 汇编处理 -> 汇编文件*.o -> 链接 -> 可执行程序*.exe不同阶段的命令:例如:我们有一个源文件:hello.c预处理:gcc -E hello.c -o hello.i编译:gcc -S he

2022-04-18 19:00:00 1243

原创 力扣20. 有效的括号(栈在括号匹配中的应用)

一、题目:给定一个只包括 '(',')','{','}','[',']'的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。示例 1:输入:s = "()" 输出:true示例2:输入:s = "()[]{}" 输出:true示例3:输入:s = "(]" 输出:false示例4:输入:s = "([)]" 输出:false示例5:输入:s = "{[]}" 输出:true二、思路:...

2021-12-16 00:37:35 837

原创 linux c++ 解析gz文件(gzopen,gzgets,gzclose)

一、背景:在linux下,当文件数量多,占用内存大的情况下,我们就需要把文件压缩去使用,本篇文章就是要介绍一下常用的压缩解压缩方法以及c++如何解析gz格式文件。二、linux下常用的压缩文件以及解压缩的方式:1、gzip:压缩:gzip test =>将test文件压缩成test.gz解压缩:gunzip test.gz =>将test.gz文件还原成test2、tar:压缩:tar -zcvf test.tar.gz test...

2021-12-12 16:48:23 4052

原创 c++如何修改文件中指定内容

一、使用背景:工作中有一个多进程程序,每一个进程都要处理一个文件,这些文件名存放在一个文件filelist.txt中。我这段程序就是要获取一个标志为0的文件名,把这个文件名记录下来,让一个进程去处理这个文件,然后把这个文件名后面的标志改为1。file1 处理前,filelist.txt内容:file1 0file2 0file3 0file1 处理后,filelist.txt内容:file1 1file2 0file3 0二、如何用c++代码实现这样修改文件内容的操作呢?

2021-12-05 21:51:41 9851

原创 register int 与 int 的区别

一、提出问题: 前几天在一段代码中看到了一行代码是这样的:register int x = 7;引发了我的好奇,因为从学c++开始,一直看到变量定义的方式都是:int x = 7;那么它们又有什么区别呢?二、现存博客的观点:register int中的register 表示使用cpu内部寄存器(寄存器是中央处理器内的组成部分)。寄存器是有限存贮容量的高速存贮部件)的变量,而平时的int是把变量放在内存中,存到寄存器中可以加快变量的读写速度。总而言之就是:registeri...

2021-12-05 16:18:48 4231

原创 c++有向无环图的实现以及拓扑排序

在一个程序中,有两种执行关系,一种是a执行完了才能执行b,也就是串行;另外一种是a和b没有依赖关系,a和b可以同时执行,也就是并行。如上图所示,这是一个有向无环图,箭头表示事件之间的驱动依赖关系。比如A和B事件执行完了才可以执行F事件,F和G事件执行完了才可以执行I事件。A、B、C、D、E、K事件可以同时执行。我在工作中遇到的问题就是把可以一起执行的事件名字放到一起,以便后面可以一起调度,这个时候就需要拓扑排序算法啦。拓扑排序的流程如下:step1:先统计所有节点的入度。(对于有向图:节点(..

2021-08-08 18:51:10 1219 2

原创 c++问题的定位方式总结

一、功能问题功能问题我建议用控制台输出或者打印日志的去定位会更加高效。首先先梳理一下程序的逻辑,然后在可能出错的位置添加打印信息的代码,然后查看打印出的信息是否符合预期即可。这样也会帮助我们更加熟悉程序的运行逻辑。二、内存问题当出现踩内存的问题时,我们采用GDB的调试方法更加高效。三、性能问题当出现性能问题时,我们采用perf工具来定位这个问题更加高效。...

2021-08-08 14:23:05 586

原创 c++ STL vector容器的3个使用小技巧

一、vector的二维数组用法:有时候我们在代码里会需要用到c语言的二维数组,但是c语言的二维数组会有一些不方便,比如二维数组的大小必须提前确定好,这时候就会想c++里面有没有能代替二维数组的数据结构呢,下面是vector的二维数组简单用法代码:#include <iostream>#include <vector>using namespace std;int main() { vector<int> v1; v1.push_back(1); v

2021-07-27 22:30:58 206

原创 c++ STL顺序容器vector/关联容器map的合并

最近工作中用到了unordered_map的合并,现在把c++中两个常用容器vector和map的合并方法总结一下。一、vector的合并(1)insert()方法#include <iostream>#include <vector>using namespace std;int main() { vector<int> v1; vector<int> v2; for (int i = 0; i < 5; i++) {

2021-07-25 12:11:56 2059 1

原创 Linux c多线程与c++多线程的基础写法

最近工作需要,对多线程做了一点了解,现在将多线程的创建,传参函数做个小结。一、linux c多线程1.头文件:#include <pthread.h>2.创建线程:pthread_create(pthread_t *restrict tidp, const pthread_attr_t *restrict attr, void *(*start_rtn)(void), void *restrict arg); //参数依次是:创建的线程id,线程参数,调用的函数,传入的函数参数。

2021-07-13 23:25:35 374 2

原创 无重复字符的最长子串[滑动窗口算法】

给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: s = "abcabcbb"输出: 3 本题采用滑动窗口算法,滑动窗口算法主要需要确定一下三点:1.窗口内是什么?2.什么情况下移动窗口的左边界?3.什么情况下移动窗口的右边界?答:滑动窗口就是一个队列,我们需要对字符串进行遍历:首先把a放进窗口,符合题目要求,然后移动窗口的右边界,第二步放b,接着放c,当放到第四个字母a时,不满足题目的无重复要求,这时我们就需要移动窗口的...

2021-07-11 22:44:53 394

原创 c++新式转型和旧式转型

这两天上班都不是很忙,就找了一份c++的资料看。上面提到《Effective C++》一书中有条原则:尽量避免转型、注重效率避免 dynamic_cast、尽量设计成无需转型、可把转型封装成函数、宁可用新式转型,少用旧式转型。第一次听到新式转型和旧式转型这两个词,就查阅资料学习了一下,现在将它们总结一下。一、旧式转型是指c语言风格类型的强制转换,有两种,语法如下:1.(T)expression double i = 5.23; int a = (int)i; cout << a &

2021-05-30 21:57:54 305 2

原创 svn上传文件时出现 “xxx is already under version control” 报错

昨天老师让我把之前上传的一个文件夹里不必要的文件删除,我就先把这个文件夹整个都在库里删除了,想在本地整理好了,再把这个文件夹上传。用到命令:【svn delete 文件夹名】【svn ci -m “delete test”】(这个命令应该会把本地的文件夹也删除,所以提前备份了~)然后我在本地把这个文件夹整理好了,准备上传。用到命令:【svn add 文件夹名】【svn ci -m “” 文件夹名】这个时候出现了问题,svn add后报错,文件夹 is already under version

2021-05-29 05:29:56 2855

原创 已知栈的入栈顺序和出栈顺序,求栈的容量至少是多少?

题目:设栈的的初始状态为空,元素a,b,c,d,e,f依次通过栈s,出栈顺序为c,f,e,d,b,a,求栈的最小容量。解析:首先栈是一个先入后出的数据结构,最先入栈的元素最后出栈,最后入栈的元素最先出栈。step1:a入栈 ,栈s中元素个数为1step2:b入栈 ,栈s中元素个数为2step3:c入栈 ,栈s中元素个数为3step4:c出栈 ,栈s中元素个数为2step5:d入栈 ,栈s中元素个数为3step6:e入栈 ,栈s中元素个数为4step7:f入栈 , 栈s中元素个

2021-05-26 22:15:38 6698

原创 c++ 类型转换

int 和 string: (1)int 转 string:用to_string 函数 (2)string转int:用atoi函数或者stoi函数 c风格字符串和c++ string (1)c风格字符串转c++ string:自动转化 (2)c++ string 转 c风格字符串:用c_str()函数...

2021-05-24 00:26:05 86 1

原创 芯片验证红皮书1-6章读书笔记

目录第一章 芯片验证全视第二章 验证的策略第三章 验证的方法第五章 验证的管理第六章 验证的结构第一章 芯片验证全视1.仿真根据项目的实施流程可以分为:前端仿真和后端仿真。前端仿真:RTL仿真,没有真实延时情况。后端仿真:门级仿真,可分为零延时仿真,单位延时仿真,SDF仿真。前端仿真是为了检测出功能逻辑的缺陷,后端仿真是为了检测出门级电路由延迟导致采样失败所产生的的功能缺陷。2.验证目前面临的两大挑战:如何穷尽所有情况给设计产生激励?如何...

2021-03-08 00:13:52 566 2

原创 perl文本读写的两种方式

最近在学习perl脚本语言,记录一下两种perl语言文本读写的方式:第一种:#! /user/bin/perl -wmy $in_file = "/目录/input.txt/";my $out_file = "/目录/output.txt/";sub main(){ open(FILE_IN, $in_file) || die "can not open $in_file"; #read #open(FILE_IN, "<$in_file") || die "can not op

2021-02-18 21:28:08 706 2

原创 正则表达式

什么是正则表达式 ?正则表达式是一种被用于从文本中检索符合某些特定模式的文本。元字符元字符 描述 . 匹配除换行符以外的任意字符。 [ ] 字符类,匹配方括号中包含的任意字符。 [^ ] 否定字符类。匹配方括号中不包含的任意字符 * 匹配前面的子表达式零次或多次 + 匹配前面的子表达式一次或多次 ? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。 {n,m} 花括号,匹配前面字符至少 n 次,但是不超过 m

2021-02-17 18:57:11 1225 5

原创 记录一个报错: E212: Can‘t open file for writing Press ENTER or type command to continue

2021年2月1日,早晨像往常一样,在linux gvim里修改文件,结果保存退出的时候居然报错了,E212: Can't open file for writing Press ENTER or type command to continue,无法保存。我先百度了一下,网上都说是当前用户的权限不足或者此文件可能正被其他程序或用户使用。网上让用sudo命令打开,我试了还是不行,并且查看了文件的权限,是有write权限的。重启了也不行。(哈哈哈,重启大法失效~)最终求助了老师,原来是爆盘了(磁盘满.

2021-02-01 20:37:59 2517 1

原创 C++结构体类型的vector如何按照结构体的一个索引值大小排序?

#include <iostream>#include <vector>#include <string>#include <algorithm>using namespace std;struct s{ int data; char b;};bool comp(const s &s1, const s &s2 ){ return s1.data < s2.data;}int main(){ .

2021-01-25 22:41:24 650

原创 C++ 如何循环读取一个文件夹下的所有文件并打印出内容(LINUX篇)?

由于<io.h>及调用里面的函数在linux下会报错,所以linux下用另外的方法来实现。#include <iostream>#include <fstream>#include <sys/types.h>#include <dirent.h>#include <vector>#include <cstring>using namespace std;int main(){ vector...

2020-12-27 23:18:02 1121

原创 C++ STL map、unordered_map、multimap、unordered_multimap

C++ STL map、unordered_map、multimap、unordered_multimap一、简介: map是STL的一个关联式容器,建立key-value一对一的对应关系。key,每个关键字只能在map中出现一次.二、区别:(1)可重复的的map:multimap、unordered_multimap;(2)无序的map:unordered_map、unordered_multimap。(3)map内部是红黑树(非严格意义的平衡二叉树),这棵树对数据有自动排序的功能,所以在m..

2020-12-27 22:22:00 682

原创 C++ 如何循环读取一个文件夹下的所有txt文件并打印出内容(windows篇)?

C++ 如何循环读取一个文件夹下的所有txt文件并打印出内容?windows代码如下:#include #include #include #include <io.h>using namespace std;void GetLineAndPrint(string in_name){ifstream fin(in_name);if (!fin){cerr << “open file error” << endl;exit(-1);}strin

2020-12-20 13:25:22 1437 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除