- 博客(1132)
- 资源 (52)
- 收藏
- 关注
原创 老程序员解Bug的通用套路
程序员在很多人的印象里是一份严(ku)谨(bi)的职业,也是一个被搞怪吐槽乐此不疲的职业,程序员们面对复杂的代码敲打电脑时连眉头都不会皱一下,但是有一个词却是他们痛苦的根源,它就是Bug。 记得刚毕业入行时,我们老大派给我和另外一个新来同事的第一件事就是修Bug,要不是在学校敲过几年代码,还真不知道如何下手!和我一起进公司的另外一个同事完全就是以“看戏者”的身份,看我搞了...
2018-06-06 09:25:29 12307 25
原创 C++17新属性详解
C++17的入选特性有:(1).非类型模板参数的 auto 模板参数分为两种,一种是类型模板参数,也是我们用得最多的一种:template <typename T, typename U>auto add(T t, U u) { return t+u;} 里面的 T 和 U 都是类型模板参数。另一种是非类型模板参数,它可以让不同的字面量成为模板的参数:te...
2018-05-27 21:59:38 54262 5
转载 C++大牛的博客
1. C++大牛的博客 Bjarne Stroustrup的博客: Bjarne Stroustrup’s HomepageBjarne Stroustrup,不认识的可以去面壁了,没有他,就没有我们现在的饭碗。Bjarne Stroustrup是丹麦人,目前任教于TAMU。他的Homepage和他的书籍The C++ Programming Language一样
2018-01-21 21:37:00 5750 1
原创 C++模板详解
一.C++模板的定义: 模板是C++支持参数化多态的工具,使用模板可以使用户为类或者函数声明一种一般模式,使得类中的某些数据成员或者成员函数的参数、返回值取得任意类型。模板是一种对类型进行参数化的工具;二.使用模板的目的: 能够使得程序员编写与类型无关的代码。比如编写了一个交换两个整型int 类型的swap函数,这个函数就只能实现int 型,对double,字符这些
2017-05-31 21:19:42 2424 3
原创 Qt的5种常用布局搭建
Qt布局详解: 界面开发首先要对整个界面进行布局,使窗体上的所有的控件必须有一个合适的尺寸和位置。那么做出来的界面才看起来美观。那么如何对界面进行布局呢?Qt提供了一些类负责排列窗体上的控件,主要有:QHBoxLayout,QVBoxLayout,QGridLayout,QFormLayout,QStackLayout。(布局管理类)这些类简单易用,无论在代码中还是用Qt Design
2016-09-30 09:06:16 5485 1
原创 优秀程序设计的18大原则
优秀程序设计的18大原则1、避免重复原则(DRY - Don’t repeat yourself)编程的最基本原则是避免重复。在程序代码中总会有很多结构体,如循环、函数、类等等。一旦你重复某个语句或概念,就很容易形成一个抽象体。2、抽象原则(Abstraction Principle)与DRY原则相关。要记住,程序代码中每一个重要的功能,只能出现在源代码的一个位置。
2016-07-11 17:07:57 6276
原创 非递归二分查找算法原理及实现
二分查找算法是一种用于在有序数组中查找特定元素的高效算法。其基本原理是通过不断将查找范围缩小一半来快速定位目标元素。
2024-09-08 22:26:53 942
原创 编写shell脚本将文件中重复的行删除
使用sort+uniq/awk/sed可以来完成。 方法一:利用sort以不重复的方式打印出文件所有的行并排序-u,表示unique。sort -u file方法二:利用sort先对文件按行排好序之后再交由uniq处理。sort -k 指定列,-t指定列分隔符。sort -k 1 -t ':' file|uniq方法三:利用sort+awk来完成。sort file | awk '{if ($0!=line) print;line=$0}'if ($0!=line) print;表示当前行是否等于上一行,不
2024-09-08 22:26:41 343
原创 DASH、HLS和MP4视频的区别?
为了流畅和高效的视频流,每个片段的比特率根据任何给定时刻可用的带宽进行调整。DASH(基于 HTTP 的动态自适应流媒体)是一项革命性的技术,可在在线访问视频和音频文件时提供无缝、不间断的观看或收听体验。借助 MPEG DASH 流,观众可以从网络服务器请求内容,而无需缓冲延迟,从而在他们的设备上获得最佳的流媒体体验。这是可能的,因为 DASH 能够根据网络条件动态选择应该交付哪个版本的内容,从而允许自适应流式传输。它通过根据可用带宽自动选择内容的最佳流媒体版本,使视频能够在没有缓冲延迟的情况下流式传输。
2024-08-31 23:43:46 624
原创 C++线程池管理
管理C++线程池涉及创建、调度和终止线程的机制,以有效地处理并发任务。以下是一个基本的线程池管理示例,包括线程池的创建、任务分配和线程池的销毁。
2024-08-31 20:13:50 524
原创 C++线程池
线程池是一种管理和复用线程资源的设计方法,旨在提高程序的并发性能和资源利用效率。它的基本原理是通过预先创建一定数量的线程,并将这些线程放入一个“池”中,当有任务需要执行时,从池中取出空闲线程来执行任务,任务完成后,线程回到池中等待下一个任务。3. enqueue函数用于向线程池中添加任务,并返回一个std::future对象,以便获取任务的结果。2. 每个线程运行worker函数,该函数从任务队列中取出任务并执行。4. main函数演示了如何使用线程池来执行两个简单的任务。
2024-08-31 20:12:56 479
原创 Shell脚本的常见应用场景及示例
Shell脚本在不同场景中的应用。根据具体需求,脚本可以变得更加复杂和功能强大。Shell脚本是系统管理员和开发者日常工作中不可或缺的工具。
2024-08-31 20:12:17 390
原创 Shell的常用参数
$0 ---- 当前程序的名称,实际上是一个内部参数,不同于$1,$2....因为它必须有!$# ---- 传递给程序的总的参数数目,也就是那个传说中的数组大小$? ---- 上一个代码或者shell程序在shell中退出的情况,如果正常退出则返回0,反之为非0值。$* ---- 传递给程序的所有参数组成的字符串。$@ ---- 以"参数1" "参数2" ... 形式保存所有参数$$ ---- 本程序的(进程ID号)PID$! ---- 上一个命令的PID 命令行指令$ test.sh f1
2024-08-30 22:20:53 568
原创 VAD算法
VAD(Voice Activity Detection,语音活动检测)算法是一种用于检测音频信号中是否存在语音活动的技术。它在许多语音处理应用中起着关键作用,包括语音识别、语音增强、噪声抑制和语音编码。VAD算法的基本目标是区分语音和非语音(噪声、静默等)部分。
2024-08-25 22:59:30 311
原创 telnet登录到bmc
在基板管理控制器 (BMC) 上使用Telnet是一种不太常见且不太安全的做法,因为Telnet以明文方式传输数据,包括密码。因此,强烈建议使用更安全的协议如SSH。:确保你知道BMC的IP地址。通常可以通过服务器的BIOS设置或者通过网络扫描工具找到。: 在连接到BMC后,你将被提示输入用户名和密码。输入正确的凭据以登录。ogin: password: : 如果凭据正确,你将成功登录到BMC,可以开始执行管理任务。
2024-08-18 22:39:26 220
原创 C++多态性与虚函数相关算法总结
下面是一个完整的示例,展示了如何使用虚函数实现多态性:/*1、利用虚函数,实现triangle(三角形),square(矩形),circle(圆)的面积计算函数show_area。
2024-08-11 22:25:21 743
原创 sshpass远程执行脚本
在使用 sshpass 命令调用 ssh 时,通常建议使用 -t 选项来分配为 ssh 命令启动的伪终端。而 -tt 选项是在 -t 的基础上增加了一次远程命令的强制性 tty 分配,它的意思是在远程主机上分配一个强制性的 tty 终端,无论是否需要。其中,密码是登录远程主机所需要的密码,用户名是远程主机的用户名,远程主机IP是远程主机的IP地址,命令是要执行的命令。首先,需要安装sshpass工具。其中,用户名是远程主机的用户名,远程主机IP是远程主机的IP地址,命令是要执行的命令。
2024-08-04 23:41:09 1179
原创 Linux Shell远程执行命令
例如 ssh user@node cd /local ls 则 ls 只会执行 cd /local 命令,ls命令在本地执行,加了双引号或者单引号,则被括起来的命令被当做ssh命令的一个参数,所以会在远程连续执行。远程执行的内容在"< < remotessh " 至" remotessh "之间,在远程机器上的操作就位于其中,注意的点:
2024-07-29 22:42:34 1523
原创 mate-terminal -x bash -c “./test.sh exec bash” & 的作用是什么?
总结下来,这个命令会在一个新的 MATE 终端窗口中启动一个 Bash shell,并在该 shell 中执行 `./test.sh` 脚本,并传递 `exec bash` 作为参数给 `test.sh`。假如 `./test.sh` 的内容是通过 `exec` 启动一个新的 shell 或其他程序,那么该新的程序会取代原来的 Bash 进程。- `bash -c`: 这表示要运行一个新的 Bash shell,并通过 `-c` 选项指定要执行的命令字符串。
2024-07-29 22:22:32 265
原创 C++指针相关算法总结
* 1、在主函数中输入10个字符串。用另一函数对它们排序。然后在主函数输出这10个已排好序的字符串。(用指针实现)*/for(i=0;i
2024-07-28 21:08:58 935
原创 互联网大裁员背景下C++程序员该如何突围?
学习C++是一项有挑战性的任务,因为它是一门功能强大且复杂的编程语言,但是只要我们有恒心,且能理论结合实践认真对待,那么成为C++高手也不难。假如你没有背景也没有资源,那就努力靠自己,用奋斗扬起生活的风帆,攀登智慧的巅峰,叩开成功的大门,点燃光辉灿烂的明天,永远相信“三分天注定,七分靠打拼”。
2024-07-28 20:56:44 859
原创 Shell脚本中一次传入多个IP
在 Shell 脚本中,我们可以通过命令行参数传递多个 IP 地址。确保我们的脚本有执行权限,我们可以使用。命令来赋予执行权限。
2024-07-28 20:26:49 180
原创 C++模板相关算法总结
*1、利用C++的模板机制定义单向队列类模板、链表类模板,并实例化应用之。*//*单向队列类模板*/private:T front;T rear;T pop();front = 0;rear = 0;
2024-07-28 20:12:01 720
原创 C++ I/O流 相关算法总结
1、建立一个二进制文件,并对其进行各种操作。struct i_Data //每个学生记录含准考证号、姓名、英语成绩共3个字段int score;if(!for(i=0;i
2024-07-28 20:11:58 951
原创 C++结构体与共同体相关算法总结
结构体用于将不同的数据类型组合在一起,每个成员都有自己的内存空间,成员之间互不影响。共同体(也称为共用体)用于将不同的数据类型组合在一个内存空间中,所有成员共享同一块内存。这意味着在一个时间点上只能有一个成员有效。/* 1、用指针和结构体实现一双向链表,并实现其相应的增、删、遍历功能,并在实例中应用它。public://头指针,当前指针//初始化函数//插入函数//删除函数//遍历函数。
2024-07-21 21:17:44 743
原创 C++运算符重载相关算法
*1、定义一个二维向量类Vector,并在该类中用成员函数方式重载一元运算符++(前、后缀)和二元运算符+。this->x=x;this->y=y;++y;Vector s;s.x=x++;s.y=y++;return s;Vector sum;return sum;++v1;
2024-07-21 21:17:32 651
原创 C++数组类算法总结
* 1、将一个数组中的值按逆序重新存放,例如,原来顺序为:a、b、c、d。要求改为:d、c、b、a。*/back(a);int i=0;while(*p!='\0')p++;//把指针定位到字符串末尾i++;//统计字符个数cout
2024-07-14 22:53:04 531
原创 C++异常处理算法总结
可以定义自己的异常类,通常继承自或其派生类。public:1、自己写一个程序,在某种条件下抛出各种类型异常(如:整数、字符串、类对象、引用等),再捕捉这些异常,并进行相关处理,保证自己的程序不被中断,让它继续执行。public:class Range{ //异常类1int index;//异常类2int len;len=si;int num=10;n
2024-07-07 22:53:16 827
原创 C++使用库Vecotr和自己手写数组的优缺点对比
C-style 数组和 std::vector 各有优缺点,应根据具体需求选择适合的工具。对于需要高性能和固定大小的场景,C-style 数组是不错的选择。而对于需要灵活性、安全性和丰富功能的场景,std::vector 更加适合。了解并掌握这两者的使用,可以帮助我们编写更加高效和健壮的 C++ 代码。
2024-06-30 22:48:46 770
原创 CUDA编程的注意事项和使用流程详解
CUDA编程是一种高效利用GPU进行并行计算的技术,但也需要开发者具备良好的并行编程知识和经验。通过本文,希望大家能够更好地理解CUDA编程的基本流程和注意事项,从而编写出高性能的并行程序。随着硬件和软件的发展,未来CUDA编程将会更加普及和易用,为各类计算密集型应用带来更多的性能提升。
2024-06-30 21:57:01 1005
原创 NVIDIA GPU 的使用场景及应用
以上只是一个简单的示例,更复杂的应用包括使用 cuDNN 进行深度学习加速、使用 TensorRT 进行推理优化等。每种 API 都有其具体的功能和使用方法,通常需要结合特定的使用场景和需求进行选择和使用。:启动 CUDA 内核,其中 numBlocks 是启动的块数,blockSize 是每个块中的线程数。以下是一些主要平台和使用场景,以及常用的 API 接口和 C++ 代码示例。__global__:标识 CUDA 内核函数,它将在 GPU 上运行。
2024-06-30 21:56:59 801
原创 C++使用GPU进行矩阵数据计算加速
使用GPU进行矩阵数据计算加速可以显著提高计算效率,尤其是在处理大规模矩阵运算时。以下是一个简单的示例,演示如何使用CUDA(Compute Unified Device Architecture)在C++中进行矩阵乘法运算。CUDA是NVIDIA开发的并行计算平台和编程模型,允许使用GPU加速计算任务。分配矩阵的主机内存,初始化矩阵数据,调用CUDA核函数进行计算,然后将结果从设备内存复制回主机内存。这是在GPU上运行的代码。每个线程计算矩阵C中的一个元素。包括分配、复制和释放内存,确保内存使用有效。
2024-06-23 22:10:32 793
原创 OpenMP使用详解
OpenMP 提供了简单而强大的并行编程能力,适合在共享内存系统上实现高效的并行计算。通过合理使用 OpenMP 指令,可以显著提高程序的执行效率。
2024-06-23 22:01:41 1043
原创 C++求一个数据集的最大值和最小值详解
求一个数据集的最大值和最小值是常见的数据处理任务之一,主要用于了解数据的范围和分布情况。原理非常简单:遍历整个数据集,记录当前遇到的最大值和最小值。假设在处理一个温度传感器的数据集,想要知道一天中记录的最高和最低温度。通过这种方式,我们可以快速找出数据集中最大和最小的值,并应用于各种领域的数据分析任务中。(5).完成遍历后,最大值和最小值变量即为数据集中的最大值和最小值。(3).如果该元素大于当前记录的最大值,则更新最大值。(4).如果该元素小于当前记录的最小值,则更新最小值。
2024-06-23 21:45:46 612
原创 Dll与exe的区别及使用详解
DLL(Dynamic Link Library,动态链接库)和EXE(Executable, 可执行文件)是两种不同类型的文件格式,主要用于不同的目的。DLL中虽然包含了可执行代码却不能单独执行,而应由Windows应用程序直接或间接调用。由于DLL能被应用程序动态载入内存。所以,应用程序可以在需要时才将DLL载入到内存中,这让程序的可维护性变得很高。比如QQ的视频功能需要升级,那么负责编写QQ的程序员不必将QQ所有代码都重写,只需将视频功能相关的DLL文件重写即可。
2024-06-16 20:26:29 1060
原创 C++网络编程方面的开源项目
合理的选择开源库能让我们快速的开发出可靠的软件,大大的节约开发时间和开发成本。因此,对开源库的特点和应用场景的掌握是非常重要也是非常必要的。
2024-06-16 20:26:12 809
原创 uint64_t result 强制转换为std::vector<uint8_t> buffer
std::vector uint64ToByteVector(uint64_t value) 是一个接受 uint64_t 值并返回 std::vector 的函数。字节序: 上述代码采用小端序。如果需要大端序,则将 buffer[i] 改为 buffer[7 - i]。类型转换: 使用 static_cast 确保从 uint64_t 转换到 uint8_t 安全。
2024-06-09 22:52:53 552
Navicat安装指导及安装资源
2024-03-23
vncserver和vncviewer
2017-06-01
大数据资料集锦
2016-03-30
Hadoop技术全套图书
2016-03-21
jQuery瀑布流经典布局源码
2016-01-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人