C/C++
易大飞
梦想贵在坚持!
展开
-
第十一章 初窥天机之数据类型为我所用
我们之前只了解C语言中的常用的数据类型,比如:int,float,double,char等基本的数据类型,如果我们想要使用另一个名字表示对应的数据类型呢?或者我们想定义一个不存在的数据类型该怎么办呢?学完这一节你就会明白如何做了,也会明白类型重定义的好处。类型重定义的目的:在写大程序的时候可能出现一些类型需要改变的情况,比如:要把int类型的数据改成float类型,那么所有数据进行更改否则会出现错误。当我们把int类型重新定义为一个新的类型比如:typedef int NEWDATA。这时如果要把.原创 2020-07-19 22:01:58 · 376 阅读 · 0 评论 -
第十章 初窥天机之神用指针
10.1指针与指针变量10.1.1 指针是什么指针如何理解?对于现阶段来说,为了便于理解指针,可以把指针称为地址。什么是地址?有这样一个的例子:如果我们要在一栋楼里面找到不认识的某一家人,那么我们需要知道这家人的门牌号,然后通过门牌号找到这户家人,而我们所说的门牌号就是地址。又或者说我们在发信件时需要写下接收地址,那么通过接收地址就会发给需要接受的人。所以地址很重要,而地址就是指针。图10.1 内存中的数据存储形式要理解指针,我们需要知道数据具体是如何在内存中存储和读取的。...原创 2020-05-16 11:49:04 · 319 阅读 · 0 评论 -
第九章 初窥天机之模块化程序设计
哲理:C语言共分为两类,一类是用户自定义函数,一类是库函数。用户自定义函数是程序员在开发时根据需要,自己开发的函数。我们将会在本章进行详细的讲解。而库函数就是别人已经写好的函数库,我们只需要拿过来用就行,比如printf函数,scanf函数,以及我们在上一章讲解的和字符串处理相关的函数。9.1 函数的概述9.1.1 什么是函数说到函数,很多不了解编程语言的人在脑中会立刻浮现出数学方面或物理方面的函数,输入变量x输出变量y。事实上,C语言函数并不是这样。“函数”是从function翻译过.原创 2020-05-08 21:43:55 · 720 阅读 · 0 评论 -
第八章 初窥天机之字符串处理
有关字符处理的话题,哲理,引用等信息。8.1 字符串简单处理函数在C语言函数库中提供了一些用来专门处理字符串的函数。几乎所有版本的C语言编译系统都会提供这些函数。比如与字符串链接相关的strcat和strncat函数,与字符串复制相关的strcpy和strncpy函数,与字符串比较相关的strcmp和strncmp函数,与字符串大小写转换相关的strlwr和strupr函数,与字符串转换成数值相关的atoi、atol与atof函数,与测量字符串长度的strlen函数等等,这些都只是字符串处理函数中的原创 2020-05-08 21:30:27 · 391 阅读 · 0 评论 -
第七章 初窥天机之数组处理
为什么要引用数组?我们此处引用一个经典的例子,那就是学生成绩记录问题。假如一个班有40名学生,每个学生都有一个学号,要把所有学生的学号保存起来,怎么办?根据之前章节的讲解我们可能会为每一个学生分配一个变量,用来保存学号。这样,就会有40个变量需要定义。可是,如果是全校成千上万个学生的学号呢?难道我们还是这样为每个学生分配一个变量吗?那么且不说后续的学号怎么使用,单单定义这些学号变量,是不是就会浪费...原创 2020-05-07 21:48:00 · 695 阅读 · 0 评论 -
C++ 类模板std::async, std::future, std::promise, std::packaged_task
C++ 类模板std::async, std::future, std::promise, std::packaged_task在C++多线程中常用到各种类模板,今天我们总结一下,下面几种类模板的使用:1. std::async2. std::future3. std::promise4. std::packaged_task5. std::future_statue...原创 2020-04-27 20:28:55 · 406 阅读 · 0 评论 -
第六章 初窥天机之循环结构程序设计
在生活中有许多事情需要反复去做,才能达到预期的目的。比如学习的过程,我对陌生的知识通过学习,然后在经过反复的复习才能长期的记住。这样一个反复的过程就是循环。循环结构就是重复的执行某一过程,直到得出自己想要的结果或者达到循环结束的条件时,结束循环。循环结构能够大大减少程序代码的书写量,提高代码的利用率。循环结构可以看成是一个条件判断语句和一个向回转向语句的组合。循环结构组成三要素:循环变量、...原创 2020-03-29 18:37:39 · 932 阅读 · 0 评论 -
灰度图转换成彩色图和彩虹图
把灰度图转换成彩色图和彩虹图1. 灰度图转换成彩色图void Gray2Color(const cv::Mat const &src, cv::Mat &dst){ dst = cv::Mat(src.rows, src.cols, CV_8UC3); int tmp = 0; for (size_t y = 0; y < src.rows; ...原创 2020-03-27 09:41:59 · 5522 阅读 · 2 评论 -
C++ mutex lock_guard unique_lock使用说明
1. std::mutex类似函数std::recursive_mutex 允许同一个线程多次获取同一个互斥量头文件#include <mutex>mutex::lock(),给共享内存加锁...... //待保护代码或者共享内存等等...mutex::unlock(),给共享内存解锁比如:std::mutex m;m.lock();......原创 2020-02-28 21:52:07 · 2016 阅读 · 0 评论 -
第五章 初窥天机之选择结构设计
哲理5.1 选择结构在人生中我们会遇到各种各样的选择,有时候选择可能会决定一个人的一生。那么在程序中选择结构是什么呢?选择结构用于判断给定的条件,根据判断的结果来决定怎么执行程序,执行哪一步程序。多数情况下不同的判断结果,导致程序执行不同的过程或步骤。在上一章图4.2 三目运算符一定程度上也就是选择结构一种普通情况,在图4.2中我们首先判断“表达式1”的运行结果是否为真,如果判断结果为...原创 2020-02-24 20:44:19 · 358 阅读 · 0 评论 -
第四章 初窥天机之运算符与表达式
添加文字有关运算符和表达式的知识。4.1 算术运算符与表达式什么是算术运算符?简单的说就是加、减、乘、除。这些大家应该小学,不,幼儿园就开始学习了。算术运算符就是这些符号的名称,而算术表达式则是对这些名称的使用。比如算术运算符“+”。算术表达式就是“a+b”了。是不是很简单,其实编程本来就是一件简单的事情。在C语言有很多算术表达式,表4.1列举了部分关系表达式。表4.1 部分关系表...原创 2020-02-14 21:01:42 · 375 阅读 · 0 评论 -
第一章 初窥天机之C语言概述
1.1计算机的发展计算机(computer)又俗称电脑,是现代一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。计算机的发明者是约翰·冯·诺依曼。计算机是20世纪最先进的科学发明之一,对人类社会的发展起到了巨大的推动作用。现在计算机已经遍及千家万户,各行各业,成为信息社会中不可或缺的工具...原创 2020-02-05 16:39:28 · 394 阅读 · 0 评论 -
第三章 初窥天机之顺序程序设计
在程序设计中有三种基本的结构,而正是这三种基本的结构组成了程序设计的主体。它们分别是:顺序结构,选择结构,循环结构。本章我们将会讲解有关顺序结构设计,并且以几个实际的函数作为实例,进行相关编程,让大家对顺序结构设计能够深刻的理解和掌握。前面我们已经大概讲了一点printf函数的输出结果。其实printf函数还有很多的使用技巧,我们将会在本章进行更加详细的介绍。实际上在我们写代码时总是少不了程序...原创 2020-02-05 16:53:59 · 477 阅读 · 0 评论 -
第二章 初窥天机之基础知识讲解
工欲善其事必先利其器,上一章我们讲解了VC++6.0的安装,这一把C语言编程的利器,那么现在是不是有种把持不住要写C语言的冲动呢?哈哈,好期待哟!想着要学习C语言,变成编程高手,最后成为隐藏在复杂网络背后的一个充满神秘感的黑客。咳咳,想想都开心!不过学习任何编程语言都需要基础理论知识的铺垫,就像我们日常生活中的常识一样必须去了解它。这样我们就可以万丈高楼平地起了。废话不多说,走起!2.1 数据...原创 2020-02-05 16:51:42 · 398 阅读 · 0 评论 -
图像缩放--OpenCV cvResize函数--最近邻插值---双线性插值--基本原理
图像大小变换void cvResize( const CvArr* src, CvArr* dst, int interpolation=CV_INTER_LINEAR );src输入图像.dst输出图像.interpolation插值方法:CV_INTER_NN - 最近邻插值,CV_INTER_LINEAR - 双线性插值 (缺省使用)CV_INTER_AREA - 使用象素关系重转载 2017-09-08 16:58:08 · 740 阅读 · 0 评论 -
栈区,堆区,全局区(静态区),字符常量区,程序代码区等相关知识总结
栈区,堆区,全局区(静态区),字符常量区,程序代码区等相关知识总结。这是一篇我转载的文章,供自己以后学习。http://blog.sina.com.cn/s/blog_149e9d2ec0102wx4w.html转载 2017-06-16 16:09:25 · 374 阅读 · 0 评论 -
C++标准库中的数学函数
C++标准库中的数学函数。这是一篇我转载的文章,里面有关于数学相关的函数讲解的很详细,供以后自己学习。http://blog.sina.com.cn/s/blog_149e9d2ec0102wxqt.html转载 2017-06-16 16:11:19 · 1387 阅读 · 1 评论 -
详解 GNU C 标准中的 typeof 关键字
详解 GNU C 标准中的 typeof 关键字。这是我转载的一篇关于GNC C的typeof的使用,讲解的还算可以,有图有文字。http://blog.sina.com.cn/s/blog_149e9d2ec0102wxrm.html转载 2017-06-16 16:12:59 · 307 阅读 · 0 评论 -
图像融合(四)-- 对比度金字塔
图像融合(四)-- 对比度金字塔这个关于对比度金字塔融合算法,有相关的理论算法介绍,讲的挺好,转载的目的是供以后自己学习,再次非常感谢作者的付出。http://blog.sina.com.cn/s/blog_149e9d2ec0102wxv7.html转载 2017-06-16 16:36:21 · 1867 阅读 · 0 评论 -
图像融合(五)-- 梯度金字塔
图像融合(五)-- 梯度金字塔。这是一篇关于梯度金子塔的图像融合文章,供自己学习,非常感谢作者的付出。http://blog.sina.com.cn/s/blog_149e9d2ec0102wxv8.html转载 2017-06-16 16:38:43 · 1357 阅读 · 1 评论 -
图像融合(六)-- 小波融合
图像融合(六)-- 小波融合。这是一篇关于小波融合的图像融合算法,供自己以后的学习。感谢此篇文章作者的付出。http://blog.sina.com.cn/s/blog_149e9d2ec0102wxv9.html转载 2017-06-16 16:40:20 · 1873 阅读 · 1 评论 -
typeid的使用方法
typeid的使用方法。这是我写的关于typeid的使用方法的一个总结,为了以后自己能够复习,也供大家参考。http://blog.sina.com.cn/s/blog_149e9d2ec0102wycr.html原创 2017-06-16 16:47:16 · 4464 阅读 · 0 评论 -
C/C++种字符串的安全操作方式strcpy_s等字符串处理函数
C/C++种字符串的安全操作方式strcpy_s等字符串处理函数这个错误可能比较隐蔽,虽然这个函数有说明。这个是我犯过的错,希望自己以后能够勉励,同时供大家参考免戒。http://blog.sina.com.cn/s/blog_149e9d2ec0102wydr.html原创 2017-06-16 16:48:38 · 2074 阅读 · 0 评论 -
通过time和strftime函数获取当前年月日
头文件 time.hvoid printDate(){ char buff1[256]; char buff2[256]; time_t t = time(NULL); strftime(buff1, sizeof(buff1), "%Y%m%d-%H%M%S", localtime(&t)); printf("%s\n", buff1原创 2017-09-02 21:17:00 · 4253 阅读 · 0 评论 -
标准C++中的string类的用法总结
标准C++中的string类的用法总结这是一篇我转载的关于C++中string的文章,供自己以后的学习总结。http://blog.sina.com.cn/s/blog_149e9d2ec0102wx39.html转载 2017-06-16 16:06:50 · 268 阅读 · 0 评论 -
C/c++几个预定义宏
C/c++几个预定义宏。这个是我自己做的总结,供大家参考。不足之处,请大家批评指针。http://blog.sina.com.cn/s/blog_149e9d2ec0102wws9.html原创 2017-06-16 11:36:20 · 326 阅读 · 0 评论 -
C++怎么获取XXXX-XX-XX格式系统时间
虽然相关的方法自己也写了很多,但是耐不住伴随时间的流失而遗忘。一下是我从网络摘抄的资料,一共自己回忆和使用。连接地址:https://zhidao.baidu.com/question/553496270550986612.html//方案— 优点:仅使用C标准库;缺点:只能精确到秒级 #include #include int main( void ) { ti转载 2017-12-26 18:06:48 · 657 阅读 · 0 评论 -
文件操作之fprintf函数的使用
函数fprintf的原型:int fprintf( FILE *stream, const char *format [, argument]...);功能:输出格式化数据到流中。多输入到文件中。参数:*stream:指向文件结构体*format:格式控制字符串argument:参数的选择返回值:成功返回字符数。失败返回负数。使用实例,来着MSD原创 2017-06-30 21:47:49 · 1840 阅读 · 0 评论 -
std::get<0>(info)使用,tuple使用,array使用
#include <iostream>#include <tuple>#include <array> int main(){ typedef std::tuple<int, int, int, std::string, std::string> DATA_INFO; //initialization value ...原创 2018-08-01 15:37:37 · 20990 阅读 · 0 评论 -
操作系统之银行家算法实现代码
1. 算法思想银行家算法是为了避免死锁的算法,是Dijkstra的银行家算法。由于该算法用于实现银行系统现金贷款的发放而得名的。为实现银行家算法,系统中必须设置若干数据结构。1) 银行家算法的数据结构a) 可利用资源向量availableb) 最大需求矩阵c) 分配矩阵d) 需求矩阵2) 银行家算法设Requesti 是进程Pi的请求量,如果Requesti[j]=k,表示进程Pi需要K个Rj类型...原创 2018-07-05 20:44:54 · 36200 阅读 · 21 评论 -
操作系统之短作业优先实现代码
完成与:2013.12.11左右1. 算法思想短作业(进程)优先调度算法SJ(P)F,是指对短作业或段进程优先调度的算法。他们分别用于作业调度和进程调度。短作业优先的调度算法时从后备队列中选择一个或者若干个估计运行时间最短的作业,将他们调入内存运行。而短进程优先调度算法则是从就绪队列中选择一个估计运行时间最短的进程,将处理机分配给它,使他立即执行并一直执行到完成,或发生某事件而被阻塞放弃处理机时在...原创 2018-07-05 20:40:47 · 6690 阅读 · 2 评论 -
操作系统之先来先服务(FCFS)实现代码
完成与:2013.12.11实验步骤:1.算法的思想先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。采用FCFS算法,每次从后备队列中选择一个或多个最先进入该队列的作业,将他们调入内存,为他们分配资源,创建进程,然后放入就绪队列。在进程调度中采用FCFS算法时,则每次调度是从就绪队列中选择一个最先进入该队列的进程,为之分配处理机,使之投...原创 2018-07-05 20:37:03 · 32158 阅读 · 14 评论 -
const与指针结合
(1)const int*p1:表示不能通过指针p1修改它指向的内存单元的值,但是p1本身可修改。(2)int const*p2=&i:与p1相同,即不能修改p2指向的内存单元的值,但是可以修改p2使其指向其它的内存单元。这里p2指向了整型变量i(3)p2=&j:修改p2,使其指向整型变量 j ,由(2)可知(3)没错。(4)int *constp3=&i:p3本身是指向整...原创 2018-07-01 14:40:02 · 291 阅读 · 0 评论 -
C++中容器对应的低层数据结构
1. vector 底层数据结构为数组 ,支持快速随机访问 2. list 底层数据结构为双向链表,支持快速增删 3. deque 底层数据结构为一个中央控制器和多个缓冲区,详细见STL源码剖析P146,支持首尾(中间不能)快速增删,也支持随机访问 4. stack 底层一般用2、3实现,封闭头部即可,不用vector的原因应该是容量大小有限制,扩容耗时 5. queu...原创 2018-07-01 14:32:32 · 482 阅读 · 0 评论 -
一个完整的括号字符串定义规则如下: 1、空字符串是完整的。 2、如果s是完整的字符串,那么(s)也是完整的。 3、如果s和t是完整的字符串,将它们连接起来形成的st也是完整的。
一个完整的括号字符串定义规则如下: 1、空字符串是完整的。 2、如果s是完整的字符串,那么(s)也是完整的。 3、如果s和t是完整的字符串,将它们连接起来形成的st也是完整的。 例如,"(()())", ""和"(())()"是完整的括号字符串,"())(", "()(" 和 ")"是不完整的括号字符串。 牛牛有一个括号字符串s,现在需要在其中任意位置尽量少地添加括号,将其转化为一个完整的原创 2018-04-09 11:45:42 · 2040 阅读 · 0 评论 -
牛牛选择了一个正整数X,然后把它写在黑板上。然后每一天他会擦掉当前数字的最后一位,直到他擦掉所有数位。 在整个过程中,牛牛会把所有在黑板上出现过的数字记录下来,然后求出他们的总和sum.
牛牛选择了一个正整数X,然后把它写在黑板上。然后每一天他会擦掉当前数字的最后一位,直到他擦掉所有数位。 在整个过程中,牛牛会把所有在黑板上出现过的数字记录下来,然后求出他们的总和sum. 例如X = 509, 在黑板上出现过的数字依次是509, 50, 5, 他们的和就是564. 牛牛现在给出一个sum,牛牛想让你求出一个正整数X经过上述过程的结果是sum.#include <iostrea...原创 2018-04-09 11:40:08 · 2113 阅读 · 0 评论 -
C结构体之位域(位段)
转载至:http://www.cnblogs.com/bigrabbit/archive/2012/09/20/2695543.html谢谢该作者的分享。C结构体之位域(位段)有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”...转载 2018-03-05 15:48:32 · 239 阅读 · 0 评论 -
const vector<int>::iterator和vector<int>::const_iterator的区别
在使用const vector::iterator和vector::const_iterator以及vector::iterator的时,对他们的区别进行了如下的总结。1. const vector::iterator的使用 vector::iterator s(5, 6); const vectorint> :: iterator iter = s.begin(原创 2017-08-08 10:30:22 · 2146 阅读 · 0 评论 -
linux中结束进程的两种方式:正常结束,异常结束
在linux系统中,有3种正常结束进程的方法和2种异常结束进程的方法,一. 正常结束进程的3种方法1) 在main函数中调用return,这相当于调用exit。2) 调用exit函数。按这个函数在ANSI C中的定义,调用时调用时将执行所有调用过的句柄,关闭所有的标准I/O流,但是并不处理文件描述符、多进程(父进程和子进程)、作业等,因而对linux系统而言并不完善。3)调用_e原创 2017-07-07 14:11:00 · 8777 阅读 · 0 评论 -
makefile学习笔记
= 是最基本的赋值:= 是覆盖之前的值?= 是如果没有被赋值过就赋予等号后面的值+= 是添加等号后面的值gcc编译相关-fPIC: -fPIC作用于编译阶段,告诉编译器产生与位置无关代码(Position-Independent Code),则产生的代码中,没有绝对地址,全部使用相对地址,故而代码可以被加载器加载到内存的任意 位置,都可以正确的执行。这原创 2017-07-13 08:52:22 · 213 阅读 · 0 评论