程序猿日记
丰哥86
1、C/C++,Python,C#。2、MFC,WPF。3、blender跨平台,音频视频,图像识别,算法。
展开
-
利用everything统计头文件个数
头文件个数原创 2022-01-18 15:24:09 · 454 阅读 · 0 评论 -
2021-4-29-五月计划
标题:2021-4-29-五月计划这不是一篇技术文章,只是一份个人的月计划安排。近况:因为一些个人不能控制的因素,决定还是要离职,正好回家处理一些私事儿,再考个C1证。也是因为这份工作的隐式加班特点,让我每天只有疯狂查资料的份儿,而无法挤出哪怕是1分钟时间来写点博客总结一下最近的所学所用。现在有时间了,在休息的这段时间里,刚好可以整理下工作中遇到的各种问题,写下自己的解决方案,分享给同行作为参考。计划图像识别,本质就是猫狗识别,用了vgg16模型。产品推荐,类似于电商推荐,参考了一本书上的原创 2021-04-29 16:09:20 · 221 阅读 · 2 评论 -
20200817_数据结构C++语言版_读书笔记16_多项式O
20200817_数据结构C++语言版_读书笔记16_多项式O每日小知识Linux中的用户配置,通过修改四个配置文件也可以,但是比较麻烦,除非特别熟悉,否则还是用默认的useradd比较好。一、相关术语polynomial-time多项式时间复杂度。二、相关内容第1章,绪论1.3 复杂度分析1.3.4 多项式O(polynomial(n))若运行时间可以表示和度量为T(n)=O(f(n))的形式,而且f(x)为多项式,则对应的算法称作“多项式时间复杂度算法”(polynomial-t原创 2020-09-17 23:56:20 · 152 阅读 · 0 评论 -
20200815_数据结构C++语言版_读书笔记15_线性O
20200815_数据结构C++语言版_读书笔记15_线性O每日小知识无。一、相关术语累计器书上的用语,生活中经常用计数器。二、相关内容第1章,绪论1.3 复杂度分析1.3.3 线性O(n)■代码1.3 数组元素求和算法sumI()//数组求和算法(迭代版)int sumI(int A[], int n){ int sum(0); //初始化累计器,O(1) for (int i = 0; i < n; i++) sum += A[i]; //累计,O(n)原创 2020-09-15 23:46:01 · 193 阅读 · 0 评论 -
20200809_数据结构C++语言版_读书笔记14_对数多项式复杂度
20200809_数据结构C++语言版_读书笔记14_对数多项式复杂度每日小知识【mount -o】。是用loop设备,在linux挂载本地iso文件使用的。-o就是loop回环设备。一、相关术语logarithmic-time algorithm对数多项式时间复杂度的算法。二、相关内容第1章,绪论1.3 复杂度分析1.3.1 对常数O(logn)■对数多项式复杂度一般地,凡运行时间可以表示和度量为T(n)=O(logcn)形式的这一类算法(其中常数c>0),均统称作“对数多原创 2020-08-09 17:30:45 · 376 阅读 · 0 评论 -
20200805_数据结构C++语言版_读书笔记13_对数O复杂度
20200805_数据结构C++语言版_读书笔记13_对数O复杂度每日小知识centos7配置本地源,第一步,mount -o rw, remount。一、相关术语logarithmic-time algorithm对数时间复杂度。二、相关内容第1章,绪论1.3 复杂度分析1.3.1 对常数O(logn)■复杂度由大O记号定义,在用函数logrn界定渐进复杂度时,常底数r的具体取值无所谓,故通常不予专门标出而笼统地记作logn。比如,尽管此处底数为常数2,却可直接记作O(logn)原创 2020-08-05 22:11:20 · 243 阅读 · 0 评论 -
20200730_数据结构C++语言版_读书笔记12_对数O
20200730_数据结构C++语言版_读书笔记12_对数O每日小知识cp -p,linux拷贝文件并保留属性。一、相关术语space complexity空间复杂度。二、相关内容第1章,绪论1.3 复杂度分析1.3.1 对常数O(logn)■ 问题与算法考虑一个算法:对于任意非负整数,统计其二进制展开中数位1的总数。代码如下:int countOnes(unsigned int n){ int iOnes = 0; while (n > 0) { iOne原创 2020-07-30 16:48:35 · 196 阅读 · 0 评论 -
20200729_数据结构C++语言版_读书笔记11_空间复杂度
20200729_数据结构C++语言版_读书笔记11_空间复杂度每日小知识touch,linux创建空文件。一、相关术语space complexity空间复杂度。二、相关内容第1章,绪论。1.2 复杂度度量1.2.1 时间复杂度1.2.2 渐进复杂度1.2.3 空间复杂度除了执行时间的长短,算法所需存储空间的多少也是衡量其性能的一个重要方面,此即所谓的空间复杂度(space complexity)。除非特别申明,空间复杂度通常并不计入原始输入本身所占用的空间。1.3 复杂度原创 2020-07-29 22:21:49 · 254 阅读 · 0 评论 -
20200728_数据结构C++语言版_读书笔记10_大omega
20200728_数据结构C++语言版_读书笔记10_大omega每日小知识ls -h命令,人性化显示文件大小,默认是字节,加上-h可以变为kb或gb。一、相关术语big-omega notation大Ω,渐进下界。二、相关内容第1章,绪论。1.2 复杂度度量1.2.1 时间复杂度1.2.2 渐进复杂度(一)■大Ω记号如果存在正的常数c和函数g(n),使得对于任何n>>2都有T(n) ≥ c*g(n)就可以认为,在n足够大之后,g(n)给出了T(n)的一个渐进下界原创 2020-07-28 15:24:08 · 390 阅读 · 0 评论 -
20200727_数据结构C++语言版_读书笔记09_最坏情况
20200727_数据结构C++语言版_读书笔记09_最坏情况每日小知识ls命令,是list的简写,学习Linux命令要学会知道英文原来的意思,方便记忆。一、相关术语worst case最坏实例,最坏情况。二、相关内容第1章,绪论。1.2 复杂度度量1.2.1 时间复杂度1.2.2 渐进复杂度(一)■ 最坏、最好与平均情况比如,“起泡排序算法复杂度T(n)=O(n2)”意味着,该算法处理任何序列所需的时间绝不会超过O(n2)。 的确需要这么长计算时间的输入实例,称作最坏实例或最坏原创 2020-07-27 19:39:08 · 195 阅读 · 0 评论 -
20200724_数据结构C++语言版_读书笔记08_大O记号
20200724_数据结构C++语言版_读书笔记08_大O记号每日小知识Linux本身没有对后缀名的检测,添加后缀名只是为了方便管理。一、相关术语大O记号以前写作大σ(希腊字母),现在都用大O(字母,不是0),用来标记渐进上界。二、相关内容第1章,绪论。1.2 复杂度度量1.2.1 时间复杂度1.2.2 渐进复杂度(一)■ 大O记号若存在正的常数c和函数f(n),使得对任何n>>2都有T(n) ≤ c*f(n)则可认为在n足够大之后,f(n)给出了T(n)增长速原创 2020-07-27 13:28:00 · 327 阅读 · 0 评论 -
20200723_数据结构C++语言版_读书笔记07_复杂度度量
20200723_数据结构C++语言版_读书笔记07_复杂度度量每日小知识Linux严格区分大小写,例如ls和LS是不同的指令,这一点和windows完全不同。一、相关术语时间复杂度随着输入规模的扩大,算法的执行时间将如何增长?执行时间的这一变化趋势可表示为输入规模的一个函数,称作该算法的时间复杂度(time complexity)。二、相关内容第1章,绪论。1.2 复杂度度量1.2.1 时间复杂度运行时间是由多种因素综合作用而决定的。1.2.2 渐进复杂度(一)在评价算法效率时原创 2020-07-23 19:03:09 · 176 阅读 · 0 评论 -
20200722_数据结构C++语言版_读书笔记06_算法效率
20200722_数据结构C++语言版_读书笔记06_算法效率每日小知识远程连接Linux的常用工具用xmanager与secureCRT,还有一个数据拷贝工具叫winscp。一、相关术语可计算性相信每一位编写过程序的读者都有过这样的体验:很多合法的程序可以顺利编译链接,但在实际运行的过程中却因无穷循环或溢出导致异常。更糟糕的是,就大量的应用问题而言,根本就不可能设计出必然终止的算法。从这个意义讲,它们都属于不可解的问题。当然,关于此类问题的界定和研究,应归入可计算性(computability原创 2020-07-22 11:54:49 · 142 阅读 · 0 评论 -
20200721_数据结构C++语言版_读书笔记05_鲁棒性
20200721_数据结构C++语言版_读书笔记05_鲁棒性每日小知识LAMP,开源软件四大工具,分别为linux,apache,mysql,php。一、相关术语degeneracy算法的退化性。robustness算法的鲁棒性。二、相关内容第1章,绪论。1.1 计算机与算法1.1.4 算法▶退化与鲁棒性除一般性情况外,实用的算法还应能够处理各种极端的输入实例。仍以排序问题为例,极端情况下待排序序列的长度可能不是正数,或者长度超过系统支持的最大值,以上都属于退化(deg原创 2020-07-21 17:45:32 · 297 阅读 · 1 评论 -
20200720_数据结构C++语言版_读书笔记04_swap
20200720_数据结构C++语言版_读书笔记04_swap每日小知识win10版本的微软拼音输入法没有状态栏,那么如何输入特殊符号呢?其实随便按个字母,在选择框的最右边有个笑脸符号,点击它就可以选择特殊符号了,而且有表情符号。一、相关术语swap上一节写bubblesort时遇到一个swap函数,是交换两个数的功能,那这个函数来自哪里呢?这是C++的库函数,加上头文件<iostream>即可。二、相关内容第1章,绪论。1.1 计算机与算法1.1.4 算法所谓算法,是指原创 2020-07-20 20:16:32 · 248 阅读 · 0 评论 -
20200717_数据结构C++语言版_读书笔记03_bubblesort
20200717_数据结构C++语言版_读书笔记03_bubblesort每日小知识bubblesort,有很多种叫法,最常见的是【冒泡排序】,数据结构C++书中叫作【起泡排序】。一、相关术语扫描交换对于长度为n的序列,共需做n-1次比较和不超过n-1次交换,这一过程称作一趟【扫描交换】。二、相关内容第1章,绪论。1.1 计算机与算法1.1.3 起泡排序排序过程中,所有元素朝各自最终位置亦步亦趋的移动过程,犹如气泡在水中的上下沉浮,起泡排序(bubblesort)算法也因此得名。代原创 2020-07-17 22:24:44 · 198 阅读 · 0 评论 -
20200716_数据结构C++语言版_读书笔记02
20200716_数据结构C++语言版_读书笔记02每日小知识xboxone手柄连接完电脑后再连接XBOX,会经常出现无法匹配的问题,解决方法为先开主机,再开手柄。——所以一个手柄不要来回切换信号,会有配对BUG。一、相关术语欧几里得欧几里得几何是现代公理系统的鼻祖。从计算的角度看,针对不同的任何问题,欧氏任何都给出了一套几何作图流程。二、相关内容第1章,绪论。1.1 计算机与算法1.1.3 起泡排序排序的概念:将给定的一组元素顺序排列,比如将n个整数按通常的大小次序排成一个非降序列原创 2020-07-16 22:07:41 · 189 阅读 · 0 评论 -
20200714_数据结构C++语言版\_读书笔记01
20200714_数据结构C++语言版_读书笔记01每日小知识搜狗拼音有两个进程是广告,一个是SGNews.exe,还有一个是【homenewsofsg.exe】。一、相关术语ENIAC全称为【electronic numerical integrator and computer】,电子数字积分计算机。二、相关内容第1章,绪论。1.1 计算机与算法1.1.1 古埃及人的绳索算法描述:perpendicular(1,A)输入:直线1及其上一点A输出:经过A且垂直于1的直线1、原创 2020-07-14 21:06:55 · 203 阅读 · 0 评论 -
20200713_动态链表
20200713_动态链表每日小知识找工作时,首先要明确自己的专业方向,明确关键词,如C++、WINDOWS、算法。一、相关术语静态链表初始化时就已经固定了大小的链表。动态链表使用malloc或new申请的链表。二、相关例子1、依次输入一些数字,输入2333时结束,然后打印出来。// 2020-7-13 14:32:56#include <iostream>struct WFNode{ int nValue; WFNode* pNext;};in原创 2020-07-13 14:41:13 · 168 阅读 · 0 评论 -
20200711_取链表中间的元素
20200711_取链表中间的元素每日小知识在xbox程序中有一个redeem a code,意思为【输入激活码】。一、相关术语单向链表单向链表是链表的一种,链接方向是单向的,访问时要通过顺序从头部开始。二、相关笔试题1、找到单向链表中间那个元素,如果有两个,则取前面的一个。思路:扫描一遍得出长度,取出中间位置。代码:typedef struct _node{ int element; _node * next;}Node;//p为指向单链表的第一个节点Node * F原创 2020-07-11 21:01:46 · 292 阅读 · 0 评论 -
20200710_减少换页错误
20200710_减少换页错误每日小知识朋友圈中的九宫格图片,可以使用PS中的切片工具完成,行与列数可以自定义。一、相关术语换页空间可以理解为内存空间的扩展,它本质是将硬盘上读取速度最快的那一部分虚拟成内存,当CPU在内存中无法命中时才会到换页空间中寻找。二、相关笔试题1、如何减少换页错误?A、进程倾向于占用CPU。B、访问局部性满足进程要求。C、进程倾向于占用I/O。D、使用基于最短时间的调度机制。E、减少页大小。答:D。时间短的结束运行快,不需要频繁切换进程。本文归类建原创 2020-07-11 18:07:32 · 217 阅读 · 0 评论 -
20200619_链表
20200619_链表每日小知识忍龙2第6关BOSS打完后还有一堆兵要清,别急着上厕所,否则还得再打一遍。一、相关术语链表链表是一个结构体与指针结合的复合类型,非连续、非顺序的存储结构。二、相关笔试题1、下面哪项不是链表相对于数组的特点?A、方便删除B、方便插入C、长度可变D、储存空间小答:D,应该是储存空间大。本文归类建议归类到【C++】。明日计划标题:时间复杂度小知识:redeem a code。参考文献:《程序员面试手册》,第3页。【C语言】指针?结构体指针原创 2020-07-09 21:31:43 · 171 阅读 · 0 评论 -
20200617_异或运算
20200617_异或运算每日小知识G29方向盘需要接电源使用,方向盘上有PS3/PS4切换按钮,接PS4时需要切换至PS4上,自动回中。一、相关术语异或运算相同为0,不同为1。例如6^3,即0110与0011,结果为0101,为十进制的5。二、相关笔试题两个二进制的异或结果是多少?——阿里巴巴答:两个二进制的异或结果是两个数按位相减后的每一位取绝对值。即a^b=|a-b|。例如:6^3 = 5。按位相减 = 0 1 0 -1,按位绝对值 = 0 1 0 1,即5。本文归类原创 2020-07-08 11:32:21 · 625 阅读 · 0 评论 -
20200617_解释一下IP协议
20200617_解释一下IP协议每日小知识SYN,全称【synchronize sequence numbers】,同步序列编号。是TCP/IP建立连接时使用的握手信号一、相关术语IP协议IP协议,即网际协议(internet protocol),是网络层的重要协议,该协议定义了数据包中的各个字段以及端系统和路由器如何作用于这些字段。网络层是整个TCP/IP协议栈的核心。网络层的功能是通过路径选择把分组发往目标网络或主机,进行网络拥塞控制以及差错控制。本文归类建议归类到【计算机网络】原创 2020-06-17 20:13:47 · 327 阅读 · 0 评论 -
20200601\_TCP/IP五层网络协议
20200601_TCP/IP五层网络协议每日小知识word中【ctrl+[】可以缩小字体。一、相关术语网络协议双方关于如何通信建立的一种约定,称为网络协议。七层协议OSI参考模型,1981年制定。包含应用层、表示层、会话层、传输层、网络层、数据链路层与物理层。二、TCP/IP五层协议1、应用层应用层是网络应用程序及其应用层协议存储的层次。为应用程序提供服务。应用层之间交换的数据单位是【消息流】或【报文】五层协议就是把七层协议中的表示层与会话层合并到了应用层。2、传原创 2020-06-01 12:04:36 · 310 阅读 · 0 评论 -
20200529_网络七层协议
20200529_网络七层协议每日小知识家里桌子不是太稳,所以打字时经常造成屏幕跟着手晃,比较好的习惯是手抬起来,胳膊不碰桌面,这样就不晃了。一、相关术语网络协议双方关于如何通信建立的一种约定,称为网络协议。四层协议应用层,网络层,传输层,物理层。七层协议OSI参考模型,1981年制定。二、七层协议1、应用层应用层是网络应用程序及其应用层协议存储的层次。为应用程序提供服务。2、表示层处理在两个通信系统中交换信息的表示方式。3、会话层负责维护两个结点间会话连接原创 2020-05-29 11:33:06 · 171 阅读 · 0 评论 -
20200528_extern C 详解
20200528_extern C 详解每日小知识在win10之前,xbox上的游戏只能在xbox游戏机玩,win10之后,部分游戏支持xbox和win10同时玩,而且只购买一次即可。一、相关术语extern CC++关键词,用于C++调用C编译后的函数。二、主要作用extern “C” 的主要作用是为了实现C++代码调用其他C语言代码。加上extern “C” 后,将指示编译器这部分代码将按照C语言的方式进行编译。由于C++支持函数重载,因此编译器编译函数的过程中会将【函数的参数类型原创 2020-05-28 11:40:05 · 203 阅读 · 0 评论 -
20200527_斐波那契数列的测试用例
20200527_斐波那契数列的测试用例每日小知识extern C用来声明用C语言编译过的函数。一、相关术语斐波那契数列英文【Fibonacci sequence】,又称黄金分割数列,由数学家【列昂纳多·斐波那契】设计。数学定义:F(1)=1,F(2)=1,F(n)=F(n-1)+F(n-2)。举例:1 1 2 3 5 8 13 21 34……测试用例gtest本文使用gtest1.8.1。VS使用VS2017,社区版本,15.9.13。二、项目设置gtest1、将【googl原创 2020-05-27 10:41:01 · 961 阅读 · 0 评论 -
20200522_数据结构学什么
20200522_数据结构学什么每日小知识win10系统cmd输入slidetoshutdown,可以进入下滑关机界面。——装X专用。一、相关术语数据结构数据结构这一学科正是以“数据”这一信息的表现形式为研究对象,旨在建立支持高效算法的数据信息处理策略、技巧与方法。二、数据结构在学什么?1、将世界的信息整理成数据。2、使计算机能够高效地处理这些数据。本文归类建议归类到【数据结构】。明日计划标题:extern C小知识:费波那其数列参考文献:《数据结构C++语言版》,第3版,原创 2020-05-22 11:08:14 · 223 阅读 · 0 评论 -
20200520_数组逆序_冒泡排序
20200520_数组逆序_冒泡排序每日小知识很多软件在系统重装后可以直接点击exe运行而无需重装,但有些不行,例如那些在AppData目录存有配置的软件,就算打开exe可能也无法正常工作。一、相关术语冒泡排序时间复杂度O(n2),是稳定算法。二、完整源码#include <iostream>void PrintArray(int*, int);//冒泡逆序排序void ReverseBubbleSortArray(int* pArray, int iLen){原创 2020-05-20 10:55:39 · 228 阅读 · 0 评论 -
20200517_在windows server 2019上部署gitblit的端口
20200517_在windows server 2019上部署gitblit的端口每日小知识无论配置什么协议,都要配置IP与端口,如果是云服务器,记得IP改为0.0.0.0。一、相关术语gitblitgitblit是一款开源的GITHUB服务器工具,可跨平台使用,纯java框架。二、步骤2、记事本打开文件【data\defaults.properties】server.sshPort = 21020server.sshBindInterface = 0.0.0.0三、出现的问题原创 2020-05-18 17:19:54 · 874 阅读 · 0 评论 -
20200516_修正20200515代码错误
20200516_修正20200515代码错误每日小知识安装VA插件时,先打开VS保证菜单栏里有VA,然后关闭VS再覆盖VA_X.dll进行“激活”。一、相关术语修正。二、修正错误1、(sony)写代码显示下列内容:**.*.*..*..*..*...*...*...*...*....*....*....*....*....*.....*.....*.....*.....*.....*.....*......*......*......*......*......*......*.原创 2020-05-16 18:03:05 · 232 阅读 · 0 评论 -
20200515_防止头文件引用
20200515_防止头文件引用每日小知识windows平台防头文件引用使用的是#pragma once。一、相关术语无二、笔试题1、.h头文件中的ifndef/define/endif有什么作用?防止头文件被重复引用。windows平台可以使用#pragma once。2、#include<file.h>与#include"file.h"有何区别?答:<>表示从系统库目录查找和引用,""表示从当前工作路径查找和引用。3、在C++程序中调用被C编译器编译后的函数,原创 2020-05-15 11:00:08 · 143 阅读 · 0 评论 -
20200512_惠普打印机功能地址保护错误
20200512_惠普打印机功能地址保护错误现象描述通过WIFI连接HP4729打印机,打印功能正常,但是如果运行打印首选项进行默认设置修改时,会弹出错误提示【功能地址0x00007F…………造成了一个保护错误,某些或全部属性页无法正常显示】。网上提供了很多方案,有重装驱动的,删除系统文件夹的,重装系统再安装驱动的,都解决不了问题,包括官方回复也跟没说一样,很明显没有负责任地去测试。解决方案我尝试【用USB线】连接打印机,因为猜测可能跟WIFI驱动不支持设置功能有关。此时,问题解决了,打开打印首选原创 2020-05-12 23:01:34 · 6931 阅读 · 0 评论 -
20200510_写一个string测试用例
20200510_写一个string测试用例每日小知识动态申请内存时有两种写法,一种是new char,一种是new char()。两者的区别在于,后者会自动清理内存,前者不会。一、相关术语相关版本gtest使用1.8.1。VS使用VS2017,社区版本,15.9.13。二、设置gtest步骤1、添加gtest相关cpp文件,移除【gtest_main.cc】【gtest-all.cc】。2、设置头文件目录:【$(SolutionDir)\googletest-release-1.8原创 2020-05-11 21:09:54 · 727 阅读 · 0 评论 -
20200509_实现string类
20200509_实现string类每日小知识strlen有C版本和C++版本,C++版本需要头文件【cstring】。一、相关术语string类C++处理字符串最常用的类,比C语言处理字符串的方法要更方便。版本VS使用VS2017,社区版本,15.9.13。二、完整string类实现源码头文件#pragma onceclass wfstring{public: wfstring(const char* pData=nullptr); wfstring(const原创 2020-05-09 22:24:35 · 158 阅读 · 0 评论 -
20200508_写一个strcpy测试用例
20200508_写一个strcpy测试用例每日小知识昨天用googletest时用了1.8.1版本而没用最新的1.10.x,是因为1.8.1里面有MSVC工程,直接用VS2017升级编译,但1.10.x里面没有提供MSVC工程,所以使用了1.8.1版本。一、相关术语测试用例测试用例(Test Case)是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。——来自百度。版本本文使用googletest版本【1.8.1】。VS使用VS2017,社区版本,15.9原创 2020-05-09 00:05:33 · 400 阅读 · 0 评论 -
20200507_googletest
20200507_googletest每日小知识gtest是一个跨平台的C++测试用例框架,由谷歌公司发布。一、相关术语原计划是写一个测试strcpy的用例的,但发现googletest用起来需要花一些功夫,所以本篇就先整理googletest的内容。googletestC++测试用例框架。版本本文使用googletest版本【1.8.1】。VS使用VS2017,社区版本...原创 2020-05-07 16:39:22 · 267 阅读 · 0 评论 -
20200506_实现strcpy
20200506_实现strcpy每日小知识存储数据时必须跟踪的3种基本属性:★信息存储在何处★存储的值为多少★存储的信息是什么类型。一、相关术语strcpyC语言库函数,用于拷贝字符串。二、笔试题1、请实现一个库函数strcpy_wf。答:char * strcpy_wf20200506(char * dest, const char * src){ asser...原创 2020-05-06 11:59:44 · 149 阅读 · 0 评论 -
20200505_指针错误
20200505_指针错误每日小知识线性结构的特点是:在数据元素的非空有限集中:1、存在唯一的一个被称为“第一个”的数据元素。2、存在唯一的一个被称做“最后一个”的数据元素。3、除第一个之外,集合中的每个数据元素均只有一个前驱;4、除最后一个之外,集合中的每个数据元素均只有一个后继。一、相关术语指针C语言出现的概念,可以自由操作内存。二、笔试题1、找出下列指针错误。vo...原创 2020-05-05 10:35:07 · 98 阅读 · 0 评论