- 博客(28)
- 收藏
- 关注
原创 狂神系列之HTML学习笔记
HTML超文本标记语言 — Hyper Text Markup LanguageW3C标准W3C:World Wide Web ConsortiumW3C标准包括: 结构化标准语言(HTML,XML) 表现标准语言(CSS) 行为标准(DOM,ECMAScript)1.网页基本信息<!--告诉浏览器,使用什么规范--><!DOCTYPE html><html lang="en"><!--head标签代表网
2021-03-29 16:02:32 290
原创 C++学习笔记——变量
变量概述:变量根据作用域可以分为局部变量和全局变量,在函数内部定义的变量称为局部变量,在函数外部定义的变量称为全局变量。如果将全局变量声明在头文件中,并且使用extern关键字修饰,作用是将变量导出,表示在任何通过#include包含该头文件的文件中都可以使用这个全局变量。使用static修饰的变量称为静态变量,根据作用域又可以分为静态局部变量和静态全局变量,相同之处是两个类型变量的生存周期都是整个程序的生命周期。一般情况下,静态全局变量的声明放在源文件中,并且不能使用extern关键字导出
2020-09-15 10:31:39 189
原创 C++学习笔记——程序的编译和执行
源程序经过预处理、编译、汇编、链接等多个步骤后,才能生成可以在机器上直接运行的可执行程序。完整的处理流程图如下图所示。预处理器在程序编译之前首先进行一些预处理工作,多有以#开头的代码都属于预处理器处理的范畴。1)#include:将头文件的内容包含到当前源文件中。2)#define:将宏定义进行宏展开。3)#ifdef:处理条件编译指令(包括#ifdef、#ifndef、#if、#else、#elif、#endif)。4)#other:处理其他宏指令(包括#error、#warnin
2020-09-12 13:18:41 166
原创 灰度梯度共生矩阵C++实现
灰度-梯度共生矩阵的元素定义为在归一化的灰度图像和归一化的梯度图像中共同具有灰度为和梯度为的像素点数。例如,表示图像内像素点灰度为10,梯度为5的像素点个数是45。1.灰度归一化其中是归一化后的最大灰度级,取16;是原图像中最大的灰度值。2.梯度归一化首先采用下面的公式计算各点的梯度值。然后梯度归一化其中表示取整运算;是归一化后的最大梯度值,取16;是图...
2020-04-23 18:10:13 1385 1
原创 C++学习笔记——STL常用算法
常用遍历算法:for_each功能:实现遍历容器函数原型:for_each(iterator beg, iterator end, _func);// 遍历算法 遍历容器元素// beg 开始迭代器// end 结束迭代器// _func 函数或者函数对象例子:#include <iostream>#include <algorithm>...
2020-03-03 20:33:01 262
原创 C++学习笔记——STL常用容器——set和map
set:所有元素在插入时自动排序,底层结构用二叉树实现。set和multiset的区别:set不允许容器中有重复的元素,multiset允许容器中有重复的元素。set构造和赋值:构造://默认构造函数set<T> st;//拷贝构造函数set(const set &st); 赋值://重载等号操作符set& operato...
2020-03-02 21:11:33 352 1
原创 C++学习笔记——STL常用容器——list
list容器的功能:将数据进行链式存储。链表:一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的。链表由一系列结点组成,结点由存储数据元素的数据域和存储下一个结点地址的指针域组成。STL中的链表是一个双向循环链表。list的优点:采用动态存储分配,不会造成内存浪费和溢出;执行插入和删除方便,修改指针的指向即可,不需要移动大量元素。list的缺...
2020-03-01 18:16:23 267
原创 C++学习笔记——STL常用容器——stack和queue
stack是一种先进后出的数据结构,栈中进去数据称为入栈,栈中弹出数据称为出栈,栈中只有栈顶的元素才可以被外界使用,所以栈不能有遍历行为。stack常用接口:构造函数://stack采用模板类实现, stack对象的默认构造形式stack<T> stk;//拷贝构造函数stack(const stack &stk);赋值操作://重载等号操作符s...
2020-03-01 17:08:05 253
原创 C++学习笔记——STL常用容器——vector和deque
vector和数组很相似,也被称为单端数组,但也有区别,数组是静态空间,而vector可以动态扩展。动态扩展:不是在原空间之后开辟新空间,而是找一个更大的空间,把数据拷贝到新空间,最后释放原空间。vector的迭代器支持随机访问。vector构造函数:函数原型://采用模板实现类实现,默认构造函数vector<T> v;//将v[begin(), end())...
2020-03-01 15:10:41 554
原创 C++学习笔记——STL常用容器——string
string是C++风格的字符串,其本质上是一个类,内部封装了很多成员函数。string和char *的区别:1.char *是一个指针;2.string是一个类,内部封装 char*,是一个char*型的容器。string构造函数:函数原型:// 创建一个空字符串 string();// 使用字符串s初始化 string(const cha...
2020-03-01 12:33:15 165
原创 C++学习笔记——模板
模板是为了提高代码的复用性,它不可以直接使用,只是一个框架。模板是C++的一种编程思想(泛型编程)所使用的技术,C++提供了两种模板机制:函数模板和类模板。函数模板:函数模板作用:建立一个通用的函数以实现某种功能,函数的返回值类型和形参类型可以不用具体制定,用一个虚拟的类型表示。语法:template<typename T>函数声明注释:template:声...
2020-02-29 17:09:08 161
原创 C++学习笔记——文件操作
C++在程序运行的时候产生的数据属于临时数据,在程序运行结束后释放掉,有时候我们需要把一些简单的数据永久的存储起来,这个时候就可以利用文件将数据持久化。文件可以分为两种类型:1.文本文件:文件以文本的ASCII码形式存储在计算机中;2.二进制文件:文件以文本的二进制形式存储在计算机中,用户一般情况下不能读懂。文件操作的三个类:1.ofstream:写操作;2.ifstrea...
2020-02-28 12:18:08 462
原创 C++学习笔记——类和对象——多态
多态是C++面向对象的三大特性之一。多态的分类:静态多态:函数重载和运算符重载属于静态多态,函数名的复用;动态多态:通过派生类和虚函数实现运行时多态。静态多态和动态多态的区别:静态多态的函数地址在程序编译阶段确定;动态多态的函数地址在程序运行阶段确定。下面是一个简单的例子:class Fruit{public:// 函数前面加上virtual关键字,编译...
2020-02-27 19:44:00 247
原创 C++学习笔记——类和对象——继承
继承是面向对象的三大特性之一,下图展示了一些类与类之间的关系。可以看出来,下层级别的成员除了拥有上一层的共性,还有自己的特性,这个时候就需要考虑用继承的技术以减少重复代码。继承的语法:class A: 继承方式 B;A类称为子类或者派生类,B类称为父类或者基类,子类中的成员包含两个部分,一部分是从父类继承过来的,另一部分是自己增加的成员,从父类继承过来的表现共性,新增的成员体...
2020-02-27 17:47:00 239
原创 C++学习笔记——类和对象——运算符重载
运算符重载的概念:对已有的运算符重新定义,赋予另外的功能,以适应不同的数据类型,如自定义的数据类型。这篇博客主要记录学习加号运算符重载、关系运算符重载、函数调用运算符重载的过程。1.加号运算符重载作用:实现两个自定义数据类型相加的运算。...
2020-02-27 14:55:17 231
原创 C++学习笔记——类和对象——友元
C++中,有些类的私有属性有时候也想让类外的一些函数或者类可以访问,这个时候就需要用到友元的技术。友元的目的是想让一个函数或者类访问另一个类中的私有成员。关键字:friend实现方式:1.成员函数做友元class Father;class Son{public: Son();// 只让visit1()做Father的友元,可以访问Father中的私有成员...
2020-02-27 11:59:17 184
原创 C++学习笔记——类和对象——构造函数和析构函数
C++中对象的初始化和清理是两个很重要的问题,因此设计者们采用构造函数和析构函数来解决这两个问题,这两个函数编译器会自动调用,完成对象的初始化和清理工作。如果我们在设计类的时候没有提供构造和析构函数,编译器会提供空实现的构造函数和析构函数。构造函数:作用:创建对象时为对象的成员属性赋值,由编译器自动调用;语法:class name(){}1.构造函数名称与类名相同;2.没有返回...
2020-02-26 21:08:53 337
原创 C++学习笔记——类和对象——封装
C++认为世间的一切事物皆为对象,而每个对象都有其属性和行为。例如学生可以作为一个对象,属性有姓名、学号、年龄等,行为有吃饭、跑步、上课等。具有相同性质的对象可以抽象为一个类。C++面向对象有三大特性,分别为:封装、继承、多态。这篇博客主要记录学习封装过程。封装有两个重要的意义:1.在设计类的时候,属性和行为写在一起,表现事物;2.在设计类的时候,可以把属性和行为放在不同的权限下,赋予...
2020-02-26 12:13:49 433
原创 CUDA库的通用工作流程
1.创建一个函数库句柄句柄包含了库的一些上下文信息,如使用的数据结构格式,用于计算的设备端的使用。2.分配设备内存一般使用cudaMalloc分配设备内存,在使用多GPU编程库时,需要使用API来分配设备内存。3.将输入数据转换为函数库支持的格式如程序的数组是行优先,但是cuda库只接受按列优先存储的数组,这种时候就要进行数据转换了,但是也可以在创建的时候保持与cuda库的数据...
2019-11-14 21:15:39 216
原创 opencv访问图像像素
方法一:用指针访问像素 Mat img=imread("E:\\Users\\lihao\\CLionProjects\\work1test\\b.bmp"); if(img.empty()){ cout<<"The picture is null!"<<endl; } int rowNumber=img.rows; ...
2019-11-14 15:38:34 169
原创 Clion中使用VS 2017为编译环境配置dlib
1.在官网中下载最新版dlib压缩包并解压缩到你想要存放的位置;2.在cmakelists中添加include_directories(E:\\dlib-19.17\\dlib-19.17),路径是我的dlib文件夹的的上一级目录,如下图所示;3.将dlib->all->source.cpp复制到项目中;4.将source.cpp中 include语句中的..全部替换为dl...
2019-06-16 13:26:08 5842
原创 clion中使用visual studio 2017为编译环境配置Qt
1.因为我的系统是win10,所以下载的是适用于windows的版本,如qt-opensource-windows-x86-5.9.5.exe2.添加系统的环境变量:E:\Qt\Qt5.9.5\5.9.5\msvc2017_64\bin3.在cmakelists中添加如下配置:set(CMAKE_INCLUDE_CURRENT_DIR ON)set(CMAKE_AUTOMOC ON)...
2019-04-26 10:04:39 5729 2
原创 clion中使用visual studio 2017为编译环境配置opencv
1.在cmakelists中添加如下配置:set(OpenCV_DIR E://opencv//opencv//build//x64//vc15//lib)find_package(OpenCV REQUIRED)include_directories(${OpenCV_INCLUDE_DIRS})target_link_libraries(MyFaceDetection ${Open...
2019-04-26 09:49:43 3165
原创 clion中使用visual studio 2017为编译环境配置mysql
说明:此处使用的是mysql官方提供的c/c++API函数,1.首先确保安装的mysql有include和lib这两个目录;2.在cmakelists中添加如下配置:include_directories(E:\\mysql\\include)link_directories(E:\\mysql\\lib)target_link_libraries(MyFaceDetection ...
2019-04-26 09:45:14 1651
原创 c++中引用和指针的关系
引用的格式:type &ref=var;区别:1.引用只是变量的别名,不开辟新的空间,与原变量使用同一块内存单元。指针是一个新的变量,有自己的存储空间。2.引用必须在声明时就初始化,指针则可以在任何时候初始化。3.引用不能为空,必须总是引用一个对象。指针可以为空,不指向任何地方。4.引用一旦被初始化,就不能再引用其他对象。指针如果没有用const修饰,就可以重新指向不同...
2019-04-02 11:56:00 223
原创 解决visual studio 2017无法打开源文件"iostream.h"的问题
代码修改为以下两行:#include<iostream>using namespace std;
2019-03-31 17:16:49 16677 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人