自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 C++ 《Effective C++ 》条款9:永远不要在构造函数或析构函数中调用虚函数

http://blog.csdn.net/hxz_qlh/article/details/14089895我想以重复本文的主题开篇:不要在类的构造或者析构函数中调用虚函数,因为这种调用不会如你所愿,即使成功一点,最后还会使你沮丧不已。如果你以前是一个Java或者C#程序员,请密切注意本节的内容-这正是C++与其它语言的大区别之一。  假设你有一个为股票交易建模的类层次结构,例如买单

2016-01-25 20:59:15 390

原创 C++ 虚函数与纯虚函数

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

2016-01-25 20:25:09 446

原创 Caffe BaseDataLayer.cpp BasePrefetchingDataLayer.cpp DataLayer.cpp 学习

本文是自己在学习Caffe源码做的笔记,结合自己的理解。但是水平有限,特别是多线程编程方面,还需要继续学习。如有错误或者疑问,欢迎指正,希望不会带来误解。后续也会即使修改更新!先贴几张图来说明继承关系:data_layers.hpp中定义了如下模板类:BaseDataLayer, Batch, BasePrefetchingD

2016-01-25 19:02:57 2202 2

原创 C++ memcpy()函数用法

函数原型void *memcpy(void*dest, const void *src, size_t n);功能由src指向地址为起始地址的连续n个字节的数据复制到以destin指向地址为起始地址的空间内。头文件#include返回值  函数返回一个指向dest的指针。说明  1.sour

2016-01-23 18:37:19 85441

转载 C++ static关键字

一.面向过程编程中的static关键字1.静态全局变量静态全局变量:[cpp] view plain copy// C++Test.cpp : 定义控制台应用程序的入口点。  //    #include "stdafx.h"  #include   #include   using namespace s

2016-01-23 18:35:19 687

原创 C++ 运算符优先级

C++操作符的优先级操作符及其结合性功能用法LLL::::::全局作用域类作用域 名字空间作用域::nameclass::namenamespace::nameLLLLL.->[]()()成员选择成员选择 下标 函数调用 

2016-01-23 13:56:21 362

原创 C++ 类的对象和类的指针的区别

#include #include using namespace std; class Student { public: static int number; string name; public: Student() { } void set(string str) { name = str; number++; // 调用静态数据成员 }

2016-01-22 18:25:17 1713

原创 C++ snprintf函数

printf()/sprintf()/snprintf()区别 先贴上其函数原型printf( const char *format, ...)    格式化输出字符串,默认输出到终端-----stdoutsprintf(char *dest, const char *format,...)     格式化输出字符串到指定的缓冲区snprintf(char *dest, siz

2016-01-21 20:32:20 4055

原创 C++ string类的构造函数

在c++中string类的构造函数有六种方式分别是:1.string(const char * s)说明:将string对象初始化为s指向NBTS。NBTS为null-byte-temnated string的缩写,表示以空字符结束的字符串------传统的C字符串。2.string(size_type n,char c)说明:创建一个包含n个元素的string对象,其中每个元

2016-01-21 20:13:43 14119

原创 计算机视觉中常用数据集

计算机视觉数据集WallFlower dataset: 用于评价背景建模算法的好坏. Ground-truth foreground provided. Foreground/Background segmentation and Stereo dataset: from Microsoft Cambridge. VISOR: Video Surveillance Online R

2016-01-20 19:53:50 2817

原创 github上计算机视觉学习资源

Awesome Computer Vision: A curated list of awesome computer vision resources, inspired by awesome-php.For a list people in computer vision listed with their academic genealogy, please visit he

2016-01-20 19:52:55 2461

原创 Solver.hpp Solver.cpp学习

主要实现了一个模板类solver,而且是个抽象类。首先看一下数据成员SolverParameter param_;int iter_;//在测试的时候,需要迭代的次数,即test_iter* batchsize(测试集的)=测试集的大小,测试集batchsize可以在prototxt文件里设置int current_step_;shared_ptr > net_;vect

2016-01-20 17:36:29 2275 1

原创 Caffe net.hpp net.cpp学习

主要定义了一个模板类net首先看一下数据成员:/// @brief The network name string name_;/// @brief The phase: TRAIN or TEST Phase phase_;/// @brief Individual layers in the net vector > > layers_; vector

2016-01-18 15:51:42 4271

原创 Caffe Blob.hpp 学习

Blob作为Caffe的四大模块之一,负责完成CPU/GPU存储申请、同步和数据持久化映射。Caffe内部数据存储和通讯都是通过Blob来完成,Blob提供统一的存储操作接口,可用来保存训练数据、模型参数等。Blob是一个高维连续数组,批处理图像数据时通常使用4维Blob,Blob的维度可以表示为(N, K, H, W),每个维度的意思分别是:N: 数据的个数,例如SGD时一次mini-bat

2016-01-13 20:13:25 1076

原创 C++ 强制转换函数const_cast,reinterpret_cast,static_cast,dynamic_cast

总结C++中的所有强制转换函数(const_cast,reinterpret_cast,static_cast,dynamic_cast)C 风格(C-style)强制转型如下:(T) expression // cast expression to be of type T函数风格(Function-style)强制转型使用这样的语法:T(expression)

2016-01-13 17:43:40 473

转载 C++ 局部类

局部类  在一个函数体内定义的类称为局部类。局部类中只能使用它的外围作用域中的对象和函数进行联系,因为外围作用域中的变量与该局部类的对象无关。局部类不能被外部所继承。在定义局部类时需要注意:局部类中不能说明静态成员函数,并且所有成员函数都必须定义在类体内。在实践中,局部类是很少使用的。下面是一个局部类的例子。  int a;  void fun()  {  static

2016-01-13 16:09:33 1015

转载 C++ 嵌套类

http://www.cppblog.com/aaxron/archive/2013/04/22/199634.html#include "stdafx.h"/*c++嵌套类可以在另一个类内部定义一个类,这样的类嵌套类(nested class)嵌套类是独立的类,基本上与它们外围类不相关,因此,外围类和嵌套类的对象是互相独立的。嵌套类型的对象不具备外围类所定义的成员

2016-01-13 16:07:50 413

原创 C/C++ void及void指针

1.概述  许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误。本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧。2.void的含义void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。void几乎只有“注释”和限制程序的作用,因为从来没有人会定义一个v

2016-01-13 15:18:05 10877 2

原创 Caffe caffe.pb.h 学习

此博文仅供自己学习,学习过程中的笔记,后续修改更新Class LayerParameter里面的几个比较重要的数据成员:::google::protobuf::RepeatedPtrField blobs_::google::protobuf::RepeatedField loss_weight_

2016-01-12 22:20:32 1496

转载 C++类四个默认函数---构造函数、析构函数、拷贝函数、赋值函数

默认构造函数指不带参数或者所有参数都有缺省值的构造函数!!!(1)构造函数、析构函数与赋值函数构造函数、析构函数与赋值函数是每个类最基本的函数。它们太普通以致让人容易麻痹大意,其实这些貌似简单的函数就象没有顶盖的下水道那样危险。每个类只有一个析构函数和一个赋值函数,但可以有多个构造函数(包含一个拷贝构造函数,其它的称为普通构造函数)。对于任意一个类A,如果不编写上述

2016-01-12 14:22:23 551

原创 Caffe Layer.hpp学习

首先,看一下数据成员,主要有:protected:LayerParameter layer_param_ : The protobuf that stores the layer parameters——caffe.proto文件里定义的message,相应的caffe.pb.h里定义的一个类。Phase phase_  :The phase: TRAIN or TEST——Pha

2016-01-11 21:55:20 1081

转载 C++ Singleton (单例) 模式最优实现

http://blog.yangyubo.com/2009/06/04/best-cpp-singleton-pattern/C++ Singleton (单例) 模式最优实现written on Thursday, June 4, 2009索引静态化并不是单例 (Singleton) 模式饿汉模式懒汉模式 (堆栈-粗糙版)懒汉模式 (局部静态变量-最佳版)

2016-01-11 12:43:56 526

原创 C++ 单例模式Singleton

问题情景在windows下面打开任务管理器,我们会发现,你只能打开一个任务管理器。如果在已打开一个任务管理器的情况下,再次打开任务管理器,系统会调出已经打开的窗口,而不是重新打开新的窗口。在系统中,之多只能存在一个任务管理器的实例。按照一般的思路,我们需要定义一个TaskManager的类(如下)class TaskManager{public: TaskManager(){}

2016-01-11 12:41:52 714

转载 C++值初始化,默认初始化,以及其他初始化类型

链接:https://www.zhihu.com/question/36735960/answer/68902926来源:知乎要理解C++(只谈C++11/14之后)的初始化类型,我认为要从最一般类型入手,那就是list initialization,其形式为:[new] T [object] { arg1, arg2, ... };list initiali

2016-01-11 09:59:06 1189

原创 C++ 类型系统

在 C++ 中,类型的概念是非常重要的。每个变量、函数参数和函数返回值必须具有一个类型以进行编译。此外,在计算表达式前,编译器会给出每个表达式(包括文本值)的隐式类型。一些类型示例包括用于存储整数值的 int、用于存储浮点值(也叫标量数据类型)的 double 或用于存储文本的标准库类 std::basic_string。可以通过定义 class 或 struct 创建自己的类型。该类型指定将分配

2016-01-11 09:33:42 729

原创 C++ 不要忘记指针变量的初始化

可以说指针是C/C++语言编程中最给力的工具。指针,让我们直接去面对最为神秘的内存空间,赋予我们对内存进行直接操作的能力。由于指针操作执行速度快、占用内存少,众多程序员对它深爱不已。但是,它的灵活性和难控制性也让许多程序员觉得难以驾驭,以致到了谈指针色变的程度。指针就是一把双刃剑。用好了它,会给你带来诸多便利,反之,则往往会引发意想不到的问题。其中,指针的初始化就是我们应当重视的问

2016-01-09 09:14:20 12615

原创 C/C++预处理指令#define #ifdef #ifndef #endif

本文主要记录了C/C++预处理指令,常见的预处理指令如下:#空指令,无任何效果#include包含一个源代码文件#define定义宏#undef取消已定义的宏#if如果给定条件为真,则编译下面代码#ifdef如果宏已经定义,则编译下面代码#ifndef如果宏没有定义,则编译下面代码#elif如果前面的#if给定条件不为真,当前条件为真,则编译下面代码#endif结束一个#if……#else

2016-01-08 21:59:41 703

原创 指针数组和数组指针

一、指针数组和数组指针的内存布局初学者总是分不出指针数组与数组指针的区别。其实很好理解:指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定。它是“储存指针的数组”的简称。数组指针:首先它是一个指针,它指向一个数组。在32 位系统下永远是占4 个字节,至于它指向的数组占多少字节,不知道。它是“指向数组的指针”的简称。下面到底哪个是数组指针,哪个是指针数

2016-01-08 21:43:28 287

原创 C++命名空间

命名空间在C++中,名称(name)可以是符号常量、变量、宏、函数、结构、枚举、类和对象等等。为了避免,在大规模程序的设计中,以及在程序员使用各种各样的C++库时,这些标识符的命名发生冲突,标准C++引入了关键字namespace(命名空间/名字空间/名称空间/名域),可以更好地控制标识符的作用域。MFC中并没有使用命名空间,但是在.NET框架、MC++和C++/CLI中,都大量使用了命名

2016-01-08 21:13:35 364

转载 C++左值与右值之道

1. C++左值与右值概念变量和文字常量都有存储区,并且有相关的类型,区别在于变量是可寻址的;对于每个变量,都有2个值与其相关联:1>数据值,存储在某个内存地址中,也称右值(rvalue),右值是被读取的值(read value),文字常量和变量都可被用于右值。2>地址值,即存储数据值的那块内存地址,也称左值(lvalue),文字常量不能被用作左值。2 .

2016-01-07 13:34:27 333

转载 C++Lamda表达式

参考:http://www.cnblogs.com/hujian/archive/2012/02/14/2350306.htmlhttps://msdn.microsoft.com/zh-cn/library/dd293608.aspx需要注意一下几点:引用捕获可用于修改外部变量,而值捕获却不能实现此操作。 (mutable允许修改副本,而不能修改原始项。)引用

2016-01-06 10:08:27 514

转载 C运行时库(C Run-time Library)详解

http://blog.csdn.net/wqvbjhc/article/details/6612099一、什么是C运行时库1)C运行时库就是 C run-time library,是 C 而非 C++ 语言世界的概念:取这个名字就是因为你的 C 程序运行时需要这些库中的函数.2)C 语言是所谓的“小内核”语言,就其语言本身来说很小(不多的关键字,程序流程控

2016-01-05 13:06:43 589

原创 Linux 重定向

参考:http://www.cnblogs.com/chengmo/archive/2010/10/20/1855805.html标准输入,输出和错误---------------------------------文件文件                描述符---------------------------------输入文件—标准输入       0输出文件—

2016-01-05 09:52:27 345

原创 C++的const类成员函数

我们知道,在C++中,若一个变量声明为const类型,则试图修改该变量的值的操作都被视编译错误。例如,[cpp] view plaincopyconst char blank = ‘’;  blank = ‘\n’;  // 错误          面向对象程序设计中,为了体现封装性,通常不允许直接修改类对象的数据成员

2016-01-04 21:32:03 410

原创 C++ #include—尖括号和双引号的区别

如果你还看一些别的C++教程,那么你可能很早就发现了,有些书上的#include命令写作#include ,但有时候又会出现#include "文件名"。你会很疑惑,到底哪个是对的呢?为什么要有这两种不同的写法呢?这两种写法都是正确的写法,但是它们却是有区别的。我们知道C++已经有一些编写好的头文件(比如标准函数库等等),它们存放在VC++的Include文件夹里。当我们使用#includ

2016-01-02 21:07:15 564

原创 Caffe——when a blob will copy data

Caffe官网原文:// Assuming that data are on the CPU initially, and we have a blob. const Dtype* foo; Dtype* bar; foo = blob.gpu_data(); // data copied cpu->gpu. foo = blob.cpu_data(); // no data co

2016-01-01 18:51:39 891

空空如也

空空如也

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

TA关注的人

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