自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

转载 C++中Template

模板(Template)指C++程序设计设计语言中采用类型作为参数的程序设计,支持通用程序设计。C++ 的标准库提供许多有用的函数大多结合了模板的观念,如STL以及IO Stream。函数模板在c++入门中,很多人会接触swap(int&, int&)这样的函数类似代码如下:void swap(int&a , int& b) { int temp = a;

2017-05-31 22:31:54 354

转载 C++中i++和++i的区别

答:理论上++i更快,实际与编译器优化有关,通常几乎无差别。 i++实现的代码为://i++实现代码为: int operator++(int) { int temp = *this;

2017-05-30 22:11:03 28214 5

转载 关于C++中的友元函数的总结

1.友元函数的简单介绍1.1为什么要使用友元函数在实现类之间数据共享时,减少系统开销,提高效率。如果类A中的函数要访问类B中的成员(例如:智能指针类的实现),那么类A中该函数要是类B的友元函数。具体来说:为了使其他类的成员函数直接访问该类的私有变量。即:允许外面的类或函数去访问类的私有变量和保护变量,从而使两个类共享同一函数。实际上具体大概有下面两种情况需要使用友元

2017-05-25 23:06:42 406

转载 C++中为什么构造函数不能为虚函数原因

1. 从存储空间角度,虚函数对应一个指向vtable虚函数表的指针,这大家都知道,可是这个指向vtable的指针其实是存储在对象的内存空间的。问题出来了,如果构造函数是虚的,就需要通过 vtable来调用,可是对象还没有实例化,也就是内存空间还没有,怎么找vtable呢?所以构造函数不能是虚函数。2. 从使用角度,虚函数主要用于在信息不全的情况下,能使重载的函数得到对应的调用。构造函数本身

2017-05-25 23:05:27 875

转载 C++析构函数为什么要为虚函数

1.为什么基类的析构函数是虚函数?  在实现多态时,当用基类操作派生类,在析构时防止只析构基类而不析构派生类的状况发生。  a.第一段代码#includeusing namespace std;class ClxBase{public: ClxBase() {}; ~ClxBase() {cout << "Output from the destruc

2017-05-25 23:04:17 437

转载 C++中虚函数和纯虚函数的区别

首先:强调一个概念定义一个函数为虚函数,不代表函数为不被实现的函数。定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。定义一个函数为纯虚函数,才代表函数没有被实现。定义纯虚函数是为了实现一个接口,起到一个规范的作用,规范继承这个类的程序员必须实现这个函数。1、简介假设我们有下面的类层次:class A { public: virtual

2017-05-25 23:02:19 343

转载 C++重写(覆盖)、重载、重定义、多态

1 重写(覆盖)override  override是重写(覆盖)了一个方法,以实现不同的功能。一般用于子类在继承父类时,重写(覆盖)父类中的方法。函数特征相同,但是具体实现不同。重写需要注意:被重写的函数不能是static的,必须是virtual的重写函数必须有相同的类型,名称和参数列表重写函数的访问修饰符可以不同。尽管virtual是private的,派生类中重写改写为

2017-05-23 10:30:46 409

转载 TCP/IP协议 三次握手与四次挥手

一、TCP报文格式        TCP/IP协议的详细信息参看《TCP/IP协议详解》三卷本。下面是TCP报文格式图:图1 TCP报文格式        上图中有几个字段需要重点介绍下:        (1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。        (2)确认序号:Ack序号,占32位,只有

2017-05-22 22:59:37 580

转载 C++中GetMemory问题

题目一:void GetMemory( char *p ){ p = (char *) malloc( 100 );}void Test( void ) { char *str = NULL; GetMemory( str );  strcpy( str, "hello world" ); printf( str );}【运行错误】//该函数做的工作是 p=str, p=

2017-05-16 22:59:49 1351

转载 C++中内存分配——静态存储区、栈和堆

一、内存基本构成    可编程内存在基本上分为这样的几大部分:静态存储区、堆区和栈区。他们的功能不同,对他们使用方式也就不同。    静态存储区:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。它主要存放静态数据、全局数据和常量。    栈区:在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的

2017-05-15 22:58:38 1077

转载 机器学习中的代价函数

注:代价函数(有的地方也叫损失函数,Loss Function)在机器学习中的每一种算法中都很重要,因为训练模型的过程就是优化代价函数的过程,代价函数对每个参数的偏导数就是梯度下降中提到的梯度,防止过拟合时添加的正则化项也是加在代价函数后面的。在学习相关算法的过程中,对代价函数的理解也在不断的加深,在此做一个小结。 什么是代价函数?假设有训练样本(x, y),模型为h,

2017-05-11 17:07:52 1226

转载 熵、交叉熵和相对熵的区别与联系

一、熵的本质是香农信息量()的期望。现有关于样本集的2个概率分布p和q,其中p为真实分布,q非真实分布。按照真实分布p来衡量识别一个样本的所需要的编码长度的期望(即平均编码长度)为:H(p)=。如果使用错误分布q来表示来自真实分布p的平均编码长度,则应该是:H(p,q)=。因为用q来编码的样本来自分布p,所以期望H(p,q)中概率是p(i)。H(p,q)我们称之为“交叉熵”。比如含有4个字

2017-05-11 16:12:43 7030

转载 k-means 的原理,优缺点以及改进

K-Means算法是无监督的聚类算法,它实现起来比较简单,聚类效果也不错,因此应用很广泛。K-Means算法有大量的变体,本文就从最传统的K-Means算法讲起,在其基础上讲述K-Means的优化变体方法。包括初始化优化K-Means++, 距离计算优化elkan K-Means算法和大数据情况下的优化Mini Batch K-Means算法。1. K-Means原理初探    K

2017-05-07 18:02:13 60671 3

转载 过拟合的解决方法

过拟合  我们都知道,在进行数据挖掘或者机器学习模型建立的时候,因为在统计学习中,假设数据满足独立同分布(i.i.d,independently and identically distributed),即当前已产生的数据可以对未来的数据进行推测与模拟,因此都是使用历史数据建立模型,即使用已经产生的数据去训练,然后使用该模型去拟合未来的数据。但是一般独立同分布的假设往往不成立,即数据的

2017-05-06 15:07:45 15266 1

原创 机器学习中偏差和方差的区别

今天在看L1和L2正则的相关知识时,看到这样一段话:        L2与L1的区别在于,L1正则是拉普拉斯先验,而L2正则则是高斯先验。它们都是服从均值为0,协方差为1λ。当λ=0时,即没有先验)没有正则项,则相当于先验分布具有无穷大的协方差,那么这个先验约束则会非常弱,模型为了拟合所有的训练集数据, 参数w可以变得任意大从而使得模型不稳定,即方差大而偏差小。λ越大,标明先验分布协方差越小,

2017-05-05 10:53:51 12686 1

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

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

2017-05-03 22:03:04 10712

转载 C++栈和队列

使用标准库的栈和队列时,先包含相关的头文件#include#include定义栈如下:stack stk;定义队列如下:queue q;栈提供了如下的操作[cpp] view plain copys.empty()               如果栈为空返回true,否则返回false  s

2017-05-03 17:58:05 255

转载 map容器对象插入数据的4种方式讲解

map容器对象插入数据的4种方式讲解map容器对象插入数据的4种方式#include #include  #include  #include  using namespace std;int main(){    mapint, string> Employee;    //通过键值赋值

2017-05-03 10:11:04 1486

转载 logistic函数和softmax函数

简单总结一下机器学习最常见的两个函数,一个是logistic函数,另一个是softmax函数。本文首先分别介绍logistic函数和softmax函数的定义和应用,然后针对两者的联系和区别进行了总结。1. logistic函数1.1 logistic函数定义  引用wiki百科的定义:  A logistic function or logistic curve

2017-05-02 17:44:21 1794

转载 数据结构———树

一、名词解释 树这个数据结构用到了递归的概念:树的子树还是树;度:节点的子树个数;树的度:树中任意节点的度的最大值;兄弟:两节点的parent相同;层:根在第一层,以此类推;高度:叶子节点的高度为1,根节点高度最高;有序树:树中各个节点是有次序的;森林:多个树组成;二、树的表示方法

2017-05-02 17:20:50 797

原创 二叉树三种遍历方式的六种实现方法

一、基本概念每个结点最多有两棵子树,左子树和右子树,次序不可以颠倒。性质:1、非空二叉树的第n层上至多有2^(n-1)个元素。2、深度为h的二叉树至多有2^h-1个结点。3、对任何一棵二叉树T,如果其终端结点数(即叶子结点数)为n0,度为2的结点数为n2,则n0 = n2 + 1。满二叉树:所有终端都在同一层次,且非终端结点的度数为2。

2017-05-01 23:03:27 21191 4

空空如也

空空如也

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

TA关注的人

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