自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(92)
  • 资源 (6)
  • 收藏
  • 关注

转载 MAKEINTRESOURCE的作用

转载自https://blog.csdn.net/mjlsuccess/article/details/9225897MAKEINTRESOURCE是一个资源名转换的宏,   VC的定义是(winuser.h):   #define MAKEINTRESOURCEA(i) (LPSTR)((ULONG_PTR)((WORD)(i)))   #define MAKEINTRESOURCEW(i) (...

2018-07-01 11:23:18 1140

转载 DC,CDC,HDC的区别

转载自https://blog.csdn.net/yam_killer/article/details/7661449设备描述表(DC)是Windows中的一种数据结构,它包含GDI需要的所有关于显示界面情况的描述字段,包括相连的物理设备和各种各样的状态信息。        图形显示功能是由显卡来完成的,你想要利用显卡的图形显示功能来完成你的图形输出,怎么办,给你一块硬件能用吗?好,现在厂商给你提...

2018-07-01 11:20:54 2296

原创 OpenCV高版本下使用CvvImage.h

OpenCV2.2版本后取消了CvvImage类,若当前使用的OpenCV版本高于2.2版本,并且想使用CvvImage来显示图片,可以将其CvvImage.h和CvvImage.cpp头文件加入到解决方案中。(注意:最好是生成CvvImage.h和CvvImage.cpp两个文件,并添加到项目文件路径下,引用时只需添加#include "CvvImage.h")以下是CvvImage.h的源码/...

2018-06-30 20:48:36 6040 9

原创 VC2015搭建OpenCV环境(超详细教程)

1、首先下载OpenCV源码库① https://sourceforge.net/projects/opencvlibrary/?source=typ_redirect②双击运行.exe文件,导出源代码2、windows环境变量设置(测试环境是win7 64位)①找到系统高级设置path右键计算机--》属性--》高级系统设置--》环境变量②添加环境变量点击编辑--》在变量值末尾添加;D:\Open...

2018-06-18 11:36:27 22186 4

原创 STL源码剖析之——数值算法

C++ STL 的数值算法(Numeric algorithms)是一组对容器元素进行数值计算的模板函数,包括容器元素求和 accumulate 、两序列元素的内积 inner_product 、容器元素的一系列部分元素和 partial_sum 、容器每对相邻元素的差adjacent_difference。1、accumulate/** 函数名: accumulate* 功能:    将指定...

2018-06-14 18:28:48 288

转载 STL源码剖析之——算法的泛化过程

文章转载自https://www.cnblogs.com/jiayayao/p/6380095.html参考内容:侯捷先生的《STL源码剖析》将一个叙述完整的算法转化为程序代码,不是什么难事。然而,如何将算法独立与其所处理的数据结构之外,不受数据结构的羁绊呢?换个说法,如何将我们所写的程序算法适用于任何(或者大部分)未知的数据结构(比如array,vector,list等)呢?  关键在于,只要把...

2018-06-14 10:21:52 190

原创 二叉搜索树和平衡二叉搜索树应用

1、树的基本术语(1) 结点的度:树中一个结点的子节点个数称为结点的度 (2)树的度:树中结点的最大度数称为树的度 (3)分支结点:度大于0的结点(又称为非终端结点) (4)叶子结点:度等于0(没有子女结点)的结点称为叶子结点。 (5)结点的层次:从树根开始定义,根结点为第一层 (有的也把根结点当为第0层) (6)结点的深度:是从根节点开始自顶向下逐层累加的 (7)结点的高度:从根节点开始自底向上...

2018-06-13 17:06:40 494

原创 STL中uninitialized_copy、uninitialized_fill、uninitialized_fill_n剖析

什么是POD类型?1、 所有标量类型(基本类型和指针类型)、POD结构类型、POD联合类型、以及这几种类型的数组、const/volatile修饰的版本都是POD类型。2、 POD结构/联合类型:一个聚合体(包括class),它的非static成员都不是pointer to class member、pointer to class member function、非POD结构、非POD联合,以及...

2018-06-05 19:57:54 5373 1

原创 C++模板和泛型实用经验

文章内容均整理自    刘光《C++程序员不可不知的101条实用经验》1.将模板的声明和定义放到一个文件中请谨记:(1)模板实现由3种方法:声明和实现在同一个头文件中;声明和实现分离,包含头文件;实用关键字export分离(2)建议选择声明和实现在同一个头文件中,因为其他两种实现都各有缺陷2.区分继承、模板及组合注意:(1)当对象的类型不影响类中函数的行为时,就要使用模板来生成这样一组类(2)当对...

2018-06-05 19:05:00 269

转载 STL空间配置器剖析

stl有容器,空间配置器,适配器,迭代器,仿函数以及算法这6个组件它们六者关系大概如下:容器通过配置器取得数据存储空间,算法通过迭代器获取容器内容,仿函数可以协助算法完成不同的策略变化,配接器可以修饰或套界仿函数。1.STL空间配置器的类型和标准接口定义(1)类型allocator::value_type;allocator::pointer;allocator::const_pointer;...

2018-06-05 17:11:48 183

原创 C++继承和多态实用经验

文章内容均整理自    刘光《C++程序员不可不知的101条实用经验》1.多态基类的析构函数应为虚函数小心陷阱:(1)在C++中,当一个派生类对象通过使用一个积累指针删除,而这个基类有一个非虚的析构函数,则结果是未定义的。运行时比较有代表性的后果是对象的派生部分不会被销毁。然而,基类部分很可能已被销毁,这就导致一个奇怪的“部分析构”对象,这是一个泄漏资源。(2)排除这个问题的方法是,给基类一个虚析...

2018-06-04 16:43:17 215

原创 C++重载操作符实用经验

文章内容均整理自    刘光《C++程序员不可不知的101条实用经验》1.有重载&&、||和,操作符想到的小心陷阱:(1)不要重载&&和||运算符。因为重载&&和||,会导致&&和||失去简短求值功能。这是我们不愿看到,同时也存在风险(2)同样不要重载,和()操作符重载规则(1)类的设计者不能声明一个没有预定义的重载操作符(2)不能为...

2018-06-04 16:42:24 161

原创 C++类的实用经验

文章内容均整理自    刘光《C++程序员不可不知的101条实用经验》1.绝不让构造函数为虚函数  关于构造函数:(1)构造函数是一个特殊的函数,其名称和类名称一样,并且不能指定返回值类型(2)声明一个类时可以不定义构造函数,但这并不能说明此类就没有构造函数。编译器会自动实现一个默认构造函数,也就是说每个类都至少存在一个构造函数(3)构造函数可接受多个参数,而且支持重载机制(4)一个类若显示地声明...

2018-06-04 16:41:19 371

原创 C++预处理实用经验

文章内容均整理自    刘光《C++程序员不可不知的101条实用经验》1.使用#define定义字面值和伪函数①简单的宏定义形式为: #define <宏名> <字符串>注意:(1)在程序中,如果#define出现在函数外面,宏的有效范围为宏定义之后到本源文件结束。用#undef可以终止宏定义的作用域(2)在进行宏定义时,可以用已经定义的宏名,可层层替换,但对于用引号引起来...

2018-06-04 16:38:30 210

原创 C++字符和字符串实用经验

文章内容均整理自    刘光《C++程序员不可不知的101条实用经验》1.关于字符编码的讨论ASCII字符集:主要包括控制字符(回车键,退格,换行键等);可显示字符(英文大小写字符,阿拉伯数字和西文符号)。ASCII编码:将ASCII字符集转为计算机可以接受的数字系统的数的规则。使用7bits表示一个字符,共128个字符。ASCII扩展字符集使用8bits,可表示256个字符注意:ASCII不能对...

2018-06-04 16:37:48 459

原创 C++函数实用经验

文章内容均整理自    刘光《C++程序员不可不知的101条实用经验》1.进制函数返回局部变量的引用请谨记:(1)函数返回时,保证返回数据超出函数范围后依然有效,如返回局部变量的引用就是禁止的(2)函数返回时,返回new生成的对象也是不可取的,这样会使代码层次混乱,不能保证做到及时回收资源2.函数传值,传指针及传引用的效率分析(1)值传递如果传值类型为类类型,函数会调用类的构造函数进行类对象构造和...

2018-06-04 16:37:02 304

原创 C++表达式和语句实用经验

文章内容整理自    刘光《C++程序员不可不知的101条实用经验》1.运算符引发的混乱①粗心导致的混乱,如将“==”写成了“=”,这种情况在if语句中能够编译通过②优先级导致的混乱,如 cout << a ? “1” : “2”,程序本意是若a为真则输出“1”,否则输出“2”,但<<运算符的优先级比条件表达式的优先级高,应改正为cout << (a ? “1”...

2018-06-04 16:35:38 566

原创 C++数组和指针实用经验

文章内容均抄自    刘光《C++程序员不可不知的101条实用经验》1.理解指针的本质数组和指针的区别在于数组的长度是固定的,只能存取某一种元素,一旦创建就不允许添加其他的元素。而指针可以像索引一样指向数组的每个元素。C++规定:存放地址的变量称为指针变量,变量的地址称为变量的指针。在32位系统中指针的宽度为32位(即4个字节)。小心陷阱:(1)一个指针变量定义了就要确保初始化,以防指针悬空或变成...

2018-06-04 16:34:12 232

原创 C++关键字实用经验

文章内容均抄自    刘光《C++程序员不可不知的101条实用经验》1.尽可能多地使用const①    int const a 和 const int a等价,表示一个整型常量②    int const * a 和 const int * a等价const在*的左边,说明指针所指向的对象是常值,如果指向的对象是常值,const在类型的前面和后面都一样③    int * const acons...

2018-06-04 16:33:05 130

原创 C++变量和类型实用经验

文章内容均抄自    刘光《C++程序员不可不知的101条实用经验》1.计算机是如何存储变量的只读数据区:存储常量和恒指全局/静态存储区:全局/静态存储区主要存储全局变量和静态变量。在C语言中,全局/静态变量又分为初始化的全局/静态变量和未初始化的全局/静态变量,初始化后的全局/静态变量存储在data去,未初始化后的全局/静态变量存储在bss区。而在C++中没有这个区分。自由存储区:指CRT(C运...

2018-06-04 16:30:54 241

转载 IO复用: select 和poll 到epoll

linux 提供了select、poll和epoll三种接口来实现多路IO复用。下面总结下这三种接口。select该函数允许进程指示内核等待多个事件中的任何一个发生,并只在有一个或多个事件发生或经历一段指定的时间后才唤醒它。函数接口: 1: #include 2: #include 3:  4: int select(int m

2017-09-18 11:17:40 475

转载 C中不安全的函数以解决办法汇总

C 中大多数缓冲区溢出问题可以直接追溯到标准 C 库。最有害的罪魁祸首是不进行自变量检查的、有问题的字符串操作(strcpy、strcat、sprintf 和 gets)。一般来讲,像“避免使用 strcpy()”和“永远不使用 gets()”这样严格的规则接近于这个要求。      这些函数由于设计的时候比较淳朴,并没有做任何的越界检测,主要容易"被溢出",只需要多设点检查边界,

2017-09-18 10:18:48 866

原创 sqlite3数据库存取和取出图片

近期学习使用sqlite3数据库,有一个将图片读取到数据库中的练习,方式是将图片信息转换成二进制形式进行读取。现将代码帖上,欢迎一起学习!!!-------------------------------------------------将图片信息写入到数据库----------------------------------------#include #in

2017-08-21 13:12:35 5893 1

原创 c++类的简单实现

#include #include using namespace std;class link_list{ private: struct node { int data; node *next; }*head; public: link_list()//构造

2017-08-21 13:11:11 316

原创 c++常用知识点5

1.函数重写overload重载override重写函数重写只发生在父子类之间在派生类中定义与基类函数原型相同(返回类型、函数名、参数列表)的函数2.赋值兼容性原则在基类与公有派生类之间也存在赋值兼容原则is-a 关系

2017-08-21 13:08:54 196 1

原创 c++常用知识点4

组合与继承:组合:has-a关系继承:is-a关系C++类的继承,指用现有类来创建新的类,即新类会获得已有类的属性和行为,并且可以添加新的属性和行为新的类称为子类或派生类,已有类称为父类或基类!格式:class 派生类名: 继承方式 基类名{//派生类新增加的成员};继承的过程:1.接收基类的成

2017-08-21 13:03:17 190

原创 c++常用知识点3

1.初始化列表构造函数(初始参数):要初始化的成员(初始值),...{}建议直接使用初始化列表来初始化所有的成员--------------------------------------------------------------------------------------------------

2017-08-21 13:00:24 189

原创 c++常用知识点2

1.动态内存分配C语言中使用malloc()申请内存空间 ,用free()释放内存空间        C++中使用new申请内存空间 ,用delete释放内存空间1. new 用于分配内存new是根据类型来自动分配空间int *p = new int;delete用于释放内存

2017-08-21 12:50:26 231

原创 c++常用知识点1

1.helloworld程序#include using namespace std;int main(){ cout<<"hello world"<<endl; return 0;}2.命名空间namespace本质:程序员开辟的一块内存空间作用:避免名字冲突使用:定义名字空间

2017-08-21 12:42:55 187

原创 shell脚本实用知识点

----------------------------------------------------------------------------------------------------1.什么是shell?shell本意为壳,用于保护内核shell是用C语言编写的程序shell是普通用户与内核沟通的桥梁,是命令解释器shell

2017-08-11 18:45:49 278

原创 sqlite3数据库函数

数据库操作的基本步骤:0.连接数据库1.打开数据库2.操作数据库3.关闭数据库sqlite3的基本元素:两个对象与八个方法一.封装系列1.建立连接、打开数据库int sqlite3_open(  const char *filename,   /* 字符串形式的数据库名(UTF-8),存在则打开,不

2017-08-11 18:09:26 2617 1

原创 sqlite3数据库命令

SQL:结构化查询语言 Structrue Query Language是所有关系型数据库管理系统的标准语言  非过程化语言只需要去定义期望结果,将产生结果的过程交给外部代理(数据库引擎)来定义根据SQL语言的功能可以这样分类:数据定义语言:DDL创建表:CREATE TABLE IF NOT EXISTS 表名(

2017-08-06 23:50:50 396

原创 数据库介绍

数据库:基础接口---------------1.数据 data描述事件的符号记录,包括数字、字符串、图像、音频、影像等,它们都可经过数字化存入计算机2.数据库 database存储数据的仓库,有组织、可共享的数据集合,按照数据结构来组织、存储和管理数据3.数据库管理系统 DBMSDBMS应该提供如下功

2017-08-06 23:49:16 295

原创 sqlite3数据库ubuntu移植&arm开发板移植

sqlite3数据库下载地址PC版:1.解压tar xvf sqlite-autoconf-3190300.tar.gzcd sqlite-autoconf-31903002.检查、配置(如果成功,会生成Makefile) --prefix=PREFIX:指定安装目录./configure --prefix=/home/csgec/bui

2017-08-06 23:47:19 777

原创 alsa库的移植

1.下载alsa-1.0.tar.gz 到开发板下载地址2.解压alsa-1.0.tar.gz库tar -xzvf alsa-1.0.tar.gz3.把alsa库中的所有工具下载到/bin目录   cd /alsa-1.0.22/bin     cp * /bin -R  4.把alsa库中的所有库下载到/

2017-08-06 23:36:25 534

原创 UDP组播

UDP组播的搭建流程-----------------------------------------------------------------------------------------------------------------------------【murecv.c】#include #include

2017-08-06 23:35:02 399

原创 IO多路复用

读写IO         阻塞I/O:    读::read一个文件,假如文件没有数据则读取会阻塞直到有数据时,返回数据的大小或读错误   写: write一个文件,写一般不会阻塞,但是当要写入的空间写满时,写就会阻塞,等待空间中有地方可写时,才再次写入,或写失败。        非阻塞I/O:            O_NONBLOCK

2017-08-06 23:33:00 283

原创 套接字选项&UDP广播

套接字选项(socket options)每个套接字在不同的协议层次(级别)上有不同的行为属性(选项),有两个函数用来设置或获取这些套接字选项getsockoptsetsockoptNAME       getsockopt, setsockopt - get and set options on socketsSYNOPSIS       #inc

2017-08-06 23:31:16 1032

原创 UDP服务器、客户端的简单实现

TCP协议和UDP协议的区别:TCP:面向连接,传输可靠(保证数据正确性,保证数据顺序),用于传输大量数据(流模式),速度慢,建立连接需要开销较多。UDP:面向非连接,传输不可靠,用于传输少量数据(数据包模式),速度快。UDP协议的搭建流程---------------------------UDP通信接收端-----------

2017-08-06 23:27:15 1213

原创 TCP服务器、客户端的简单实现

1.  IP地址(IPV4   IPV6)  以一个32位的整形表示:172.166.111.110  -》点分10进程      地址     255.255.255.255    表示为     FF   FF   FF  FF   ->二进程  2.IP地址分类A类地址:0.0.0.0    --   127.255.255.2

2017-08-06 23:24:13 493

STL数值算法源码

参考自侯捷先生的《STL源码剖析》,C++ STL 的数值算法(Numeric algorithms)是一组对容器元素进行数值计算的模板函数,包括容器元素求和 accumulate 、两序列元素的内积 inner_product 、容器元素的一系列部分元素和 partial_sum 、容器每对相邻元素的差adjacent_difference。

2018-06-14

sqlite3数据库

sqlite3数据库

2017-08-06

alsa库的配置

alsa库的配置

2017-08-06

7大排序算法

7大排序算法(快速,选择,冒泡,插入,希尔,归并,堆)实现源码

2017-06-21

学生管理系统源码

学生管理系统小项目(增删改查,统计排序和显示)在codeblocks平台下完美运行。代码简洁易懂,并有大量注释。

2017-06-21

7大排序算法实现程序(快速排序,冒泡排序,选择排序,归并排序,插入排序,希尔排序,堆排序)

7大排序算法(快速排序,冒泡排序,选择排序,归并排序,插入排序,希尔排序,堆排序)实现源码

2017-06-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除