C++
文章平均质量分 58
shuzfan
这个作者很懒,什么都没留下…
展开
-
C++ RGB转灰度图像
RGB转灰度,通常会使用下面的一个心理学公式:(opencv和matlab中使用的也是该公式)Gray = 0.2989*R + 0.5870*G + 0.1140*B抛却指令优化不谈,优化转化速度的最直接方法就是将浮点运算转化为整数运算:比如我们可以将上式转化为:Gray = (2989*R + 5870*G + 1140*B)/ 10000,但是上面的除法还是不够快,我们完全可以使用移位操作来代原创 2016-10-04 14:17:33 · 11135 阅读 · 0 评论 -
友元函数与友元类
面向对象编程的一个重要思想就是实现数据隐藏(类的封装特性),即:非成员函数不能访问private 或者 protected 变量。有些时候我们需要不经成员函数而访问private 或者 protected数据,那就需要用到 友元函数 或者友元类。1. 友元函数使用 friend 关键字在类内任意位置声明函数为友元函数。 而且,当要访问 非static成员时,需要对象作为参数。如下:#include原创 2017-08-31 12:11:49 · 1246 阅读 · 0 评论 -
C++ 宏定义
———————— #define基本用法 ————————#define命令是C语言中的一个宏定义命令,它用来将一个标识符(宏名)定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本。程序编译之前,编译的时候所有的宏名都会被定义的字符串替换,这便是宏替换。理解宏定义的关键在于 “替换”。该命令有两种格式:一种是简单的宏定义,另一种是带参数的宏定义。(1)简单的宏定义: #defi原创 2016-10-19 16:28:04 · 40316 阅读 · 3 评论 -
有符号整数的表示范围
结论:n比特有符号整数的表示范围为 \(-2^{n-1} ~ 2^{n-1}-1\)原创 2017-08-26 14:10:33 · 15864 阅读 · 1 评论 -
static关键字
static关键字的介绍主要从以下几个方面进行:1. 静态局部变量 2.静态全变量 3.静态函数 4.静态类成员变量 5.静态类成员函数原创 2017-05-28 10:51:23 · 1066 阅读 · 2 评论 -
指针与引用
(1)指针 = 地址,引用 = 别名指针描述的是数据在内存中的存储地址;引用相当于给数据起了一个别名,但其内存地址一样。原创 2017-08-13 15:59:42 · 569 阅读 · 0 评论 -
C++ 类型转换
隐式类型转换1 数值类型转换2 指针类型转换显式类型转换1 explicit关键字1 强制类型转换11 static_cast12 dynamic_cast13 const_cast14 reinterpret_cast参考资料C++类型转换大体上包括隐式类型转换和显式类型转换。1. 隐式类型转换隐式类型转换是自动执行的,无需显式的操作符。 隐式类型转换发生在很多地方,比如函数原创 2017-08-17 19:03:25 · 16301 阅读 · 2 评论 -
C++ 内联函数inline
1. 内联函数的作用inline 2. 内联函数的实现 3.内联函数的优缺点 4.内联函数的应用场景 5 内联函数与宏的区别原创 2017-06-26 10:12:11 · 4174 阅读 · 0 评论 -
C/C++的四大内存分区
本文转载自Dablelv的博客专栏http://blog.csdn.net/k346k346/article/details/45592329正确的理解C/C++程序的内存分区,是合格程序猿的基本要求。 网络上流形两大版本内存分区,分别为:1. 五大内存分区:堆、栈、全局/静态存储区、自由存储区和常量存储区。 2. 五大内存分区:堆、栈、全局/静态存储区、字符串常量区和代码区。且不论以上两种转载 2017-05-27 21:43:57 · 1927 阅读 · 3 评论 -
STL-Vector内存机制
vector可以看作是一个动态数组,其内存是连续的,并具有以下特性:(1) vector中的size表示当前实际数据数量,capacity 则表示当前可容纳的数量,即已开辟的内存。(2) 释放(pop_back)、删除(erase) 和 清空(clear) 只会改变size,不会改变capacity 。只有在vector析构的时候才会清空所有内存。(3) 当追加(push_back)、 插入(ins原创 2017-05-27 20:38:40 · 1454 阅读 · 0 评论 -
C++ 类访问控制
最近在使用C++创建类的时候,忽然发现自己对于类访问控制 public,protected,private 的作用没有理解透彻,后来就查了些资料,这里以作记录。访问控制C++类的重要属性就是封装和继承。因此,最关键的问题就是权限 的问题,public,protected,private 控制的就是类内成员的访问权限。原创 2017-04-02 22:54:09 · 1981 阅读 · 0 评论 -
C++ 将文件数据一次性加载进内存
问题: 早先写了一个目标检测SDK,里面有从bin文件加载模型和从内存加载模型两个接口。后来遇到了级联检测,即有多个bin模型文件,当想要把多个bin文件合并成一个的时候,发现对应的加载接口也得变。解决: 为了不改变接口,采用了下面的解决思路原创 2017-03-27 14:50:32 · 5363 阅读 · 0 评论 -
VS运行时库
本文主要讲述VS运行时库:1 运行时库的主要作用MTMTdMDMDdMLMLd 已废弃的区别与原理如何避免这种错误1 MD和MDd将是潮流所趋2 在多工程开发时所有的工程使用同一种运行时库历史发展的角度讲解运行时库1 从操作系统的角度出发2 从语言的角度在Windows下进行转载 2017-02-21 19:27:09 · 7487 阅读 · 0 评论 -
浮点数表示
浮点数表示 浮点数的规格化表示 浮点数的表示范围 浮点数的表示精度 参考资料 之前的一些工作当中碰到了很多有关浮点数的问题,比如浮点数的表达范围、表达精度、浮点数的存储方式、浮点数的强制类型转换等等,因此感觉有必要系统了解一下有关浮点数的问题。 —————————— 浮点数表示 —————————— 浮点数是一种 公式化 的表达方式,用来近似表示实数,并且可以在原创 2016-12-22 15:00:17 · 68088 阅读 · 17 评论 -
c++ ——排序并保留索引
C++自带的排序函数sort只能获得排好序的值,没办法像Matlab一样同时返回排序索引。下面使用c++11中的 lambdas来为sort函数添加一个模式:template <typename T>vector<size_t> sort_indexes(const vector<T> &v) { // 初始化索引向量 vector<size_t> idx(v.size()); //使用原创 2016-09-30 17:53:05 · 19607 阅读 · 1 评论 -
C++ Map常见用法说明
C++中map提供的是一种键值对容器,里面的数据都是成对出现的,如下图:每一对中的第一个值称之为关键字(key),每个关键字只能在map中出现一次;第二个称之为该关键字的对应值。一. 声明//头文件#include<map>map<int, string> ID_Name;// 使用{}赋值是从c++11开始的,因此编译器版本过低时会报错,如visual studio 2012map<int,原创 2016-11-10 15:07:36 · 267479 阅读 · 20 评论 -
C++ virtual关键字
之前始终没有搞清楚C++中 “virtual” 关键字的用法。静态函数可以声明为虚函数吗构造函数可以为虚函数吗析构函数可以为虚函数吗虚函数可以为私有函数吗虚函数可以被内联吗纯虚函数与抽象类原创 2017-08-14 19:25:02 · 12460 阅读 · 2 评论