C/C++
文章平均质量分 77
本专栏将主要介绍一些常见算法的实现
斯曦巍峨
这个作者很懒,什么都没留下…
展开
-
Web Bench源码剖析
Web Bench是 基于C语言实现的Linux系统下的HTTP压力测试工具,可以模拟大量用户请求网站所需资源,测试服务器在不同并发情况下的负载能力。Web Bench通过`fork()`函数创建多进程的方式来模拟多个客户端,客户端可以发送`HTTP/0.9-HTTP/1.1`请求,请求类型包括`GET`、`HEAD`、`OPTIONS`、`TRACE`等。Web Bench的源码体积非常小,适合C/C++的学习者来阅读。原创 2023-06-13 09:09:42 · 343 阅读 · 0 评论 -
C++中的Lambda表达式
使用Lambda表达式的执行效率更高,虽然在其它编程语言如python中确实经常用它,但是C++中却用的很少。为此,我专门去学习了一下C++中的Lambda表达式,于是便有了此文。原创 2022-07-14 08:39:43 · 3113 阅读 · 1 评论 -
C++调用Python脚本学习笔记
一.前言最近碰到了一个奇怪的需求,需要用C++调用Python脚本(Python调用C++倒是常见,反过来以前真没见过),因此去网上学习了一波顺便将学习过程中的笔记分享一波,话不多说,请看下文。二.VS中调用Python配置首先在Visual Studio中创建项目,注意需要选择X64进行编译,即:然后,需要将Python安装目录下的include和libs目录引入到本项目中去,具体做法如下:对于include,选择项目–>配置属性–>C/C+±->附加包目录,在附加目录那一原创 2021-11-15 20:08:02 · 2389 阅读 · 0 评论 -
Prime Cuts问题
题目题意陈述输入两个数N,C,若1~N之间有偶数个素数,则输出最中间的2C个素数,若有奇数个素数则输出最中间2C-1个素数,当要输出的素数列表大于1到N之间的素数个数则输出1-N之间的所有素数。解题思路解决该题有两个关键点:1.查找1~N之间的素数列表;2.如何找到素数列表最中间的2C/2C-1个元素并输出针对关键点1,由于N的值是有限制的(1~1000),所以为了提高效率可以先...原创 2019-04-30 07:00:46 · 569 阅读 · 0 评论 -
C++实现基于十字链表的稀疏矩阵的转置
使用的数据结构十字链表的定义如下:typedef struct node { int i, j;//行号,列号 int e;//存储的数据 struct node *right, *down;//right,down分别为行指针和列指针}OLNode;通过上述定义创建下图所示的十字链表结点:基于十字链表存储的稀疏矩阵的创建这里不做详细讲解,这里只展示本人创建的示例:转置算法的...原创 2019-04-09 21:45:14 · 4745 阅读 · 0 评论 -
C++实现寻找所有马鞍点
C++实现寻找马鞍点实现思路c++源代码实现思路在一个矩阵中第i行的最小值同时又是第j列的最小值我们称之为马鞍点。下面介绍以二维数组存储的马鞍点的求法:1.首先设置两个位置标志min_i,min_j,分别代表某列的最小值的横坐标和某行的最小值的纵坐标。2.找到某行的最小值(暂且记为min1)将它的纵坐标存储在min_j中并令min_i等于该行的行号,然后遍历min1对应的那一列,如果有比m...原创 2019-04-06 18:10:48 · 3924 阅读 · 0 评论 -
c++实现扫描线种子填充算法
今天我们来介绍一种利用堆栈实现的填充算法,这种算法相比于直接使用递归实现的填充算法(如内点表示的四连通种子填充算法)来说,它需要的堆栈大小不需要那么庞大,下面是具体实现:...原创 2019-10-17 21:34:39 · 5732 阅读 · 7 评论 -
MFC中绘制任意弧度的圆弧
在圆的生成算法中有一种使用极坐标生成圆的算法,实际上我们可以利用极坐标方程绘制在任意位置任意弧度的圆弧:首先,需要了解圆的极坐标方程组,如下所示:其中,xc、yc为圆的圆心坐标。在了解圆的极坐标方程后,我们要绘制圆弧则需要指定θ的范围指定圆弧的起始位置确定圆弧所在圆的圆心和半径除了上述这些必备条件之外,我添加了一个参数COLORREF color用来指定绘制圆弧的颜色。下面是绘...原创 2019-10-12 14:41:07 · 5312 阅读 · 3 评论