C++
WhiteCipher
这个作者很懒,什么都没留下…
展开
-
动态创建二维数组
二维数组的本质还是一个一维的数组,动态的创建一个M行N列的数组需要一点小技巧。(1)new创建T** matrix2 = new T*[M];//分配第一维for (size_t i = 0; i (2)vectorvector> matrix2(M, vector(N));(3)proxy class后面再说原创 2016-12-08 20:48:20 · 449 阅读 · 0 评论 -
ubuntu 14.04安装opencv2.4.13
1、下载opencv2.4.13的.zip包 http://opencv.org/downloads.html2. 解压到任意目录unzip opencv-2.4.13.zip3.在解压后的目录里创建一个releasecd opencv-2.4.11 mkdir release3. 安装一些必要的依赖库sudo apt-get install build-e原创 2016-12-13 16:31:13 · 3439 阅读 · 0 评论 -
vim 常用的若干命令
x 删除当前光标下的字符dw 删除光标之后的单词剩余部分。d$ 删除光标之后的该行剩余部分。dd 删除当前行。c 功能和d相同,区别在于完成删除操作后进入INSERT MODEcc 也是删除当前行,然后进入INSERT MODE删除每行第一个字符 :%s/^.//g删除每行前2个字原创 2016-12-25 18:08:07 · 291 阅读 · 0 评论 -
Ubuntu14.04+caffe+cuda8.0+cudnn v5.1配置
1. 环境准备在Ubuntu下用apt-get大法搞定所有依赖包。opencv和python建议通过别的方法自行安装sudo apt-get install gitsudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-co原创 2016-12-21 20:46:11 · 2342 阅读 · 0 评论 -
计算两个矩形IOU的算法
float intersectRect(const cv::Rect& rectA, const cv::Rect& rectB, cv::Rect& intersectRect){ if (rectA.x > rectB.x + rectB.width) { return 0.; } if (rectA.y > rectB.y + rectB.height) { return 0.; }原创 2017-04-22 00:01:03 · 7049 阅读 · 0 评论 -
windows(32bit&64bit)和linux下通用的GetFile函数
1. 最近出于需要写了一个linux和windows 下通用的遍历文件夹下指定文件的函数,函数功能基本该有的都有了,下面是代码:#ifndef OSTOOLKIT_HPP#define OSTOOLKIT_HPP#include <vector>#include <algorithm>#include <sstream>#ifdef __l...原创 2017-04-21 10:47:07 · 658 阅读 · 0 评论 -
C++生成随机数
1. 在C++中,常用rand()来生成随机数,但这样生成的随机数是伪随机的,由于seed一样,两次执行程序生成的随机数也是一样的。这时候需要用srand()函数来制定不一样的seed,一般采用时间作为seed来作为随机种子,随后再调用rand()函数生成的随机数便会每次不一样。#include srand((unsigned)time(NULL));int num = rand();原创 2017-03-14 10:01:30 · 528 阅读 · 0 评论 -
获取数组和指针指向空间大小
(1)对于数组,可以用sizeof(数组名) / sizeof(type) 得到其长度。注:在 函数传递后,数组会退化为一个普通指针,此时在函数体内使用sizeof(指针形参) / sizeof(type) 是无法得到指针指向区域空间大小的。解决方法是将数组大小作为函数的形参传递进去。(2)获取指针指向空间的大小:如果指针是用malloc和new等方式动态分配的,可以使用位于中的_ms原创 2016-12-08 16:27:08 · 2464 阅读 · 0 评论 -
caffe的LSTM层实现与解析(非官方版)
最近看CTPN的论文时看到了demo中实现的LSTM层,这和caffe官方的基于recurrent层的不一样,是独立的。我对它做了一些注解,在这里贴出来方便以后查看。#include #include "caffe/blob.hpp"#include "caffe/common.hpp"#include "caffe/filler.hpp"#include "caffe/layer.原创 2017-03-06 10:07:48 · 3161 阅读 · 3 评论 -
const vector<Type>和vector<const Type>的区别
无原创 2016-12-08 13:02:49 · 5995 阅读 · 0 评论 -
C++多线程小试
服务器上跑的程序很多都是要求在多线程条件下运行,因此在本地时我们通常需要模拟多线程情况来检查自己程序的正确性,尤其是程序中有static静态量的时候尤其要注意多线程的问题。(曾被一个静态类坑地不要不要的)1. 开启多线程//编译时候最后加上静态库的加载:g++ -o thread thread.cpp -lpthread#include #include #include #in原创 2017-03-18 21:57:01 · 290 阅读 · 0 评论 -
caffe的reshape层探究
在caffe的reshape层参数设定中有两个特别的参数:axis和num_axes,看caffe.proto里的对reshape层的参考文档发现解释的不清楚,举的例子也存在错误,因此特地写了一个仿照reshape层实现的代码来探究这两个参数的作用,代码如下:#include #include using namespace std;int count(vector input, i原创 2017-02-24 22:33:47 · 4283 阅读 · 2 评论 -
最大子数组问题
给出一个数组,要求求出最大非空连续子数组,字数组的和最大。templatevector FindMaxCrossSubArray(const vector& A, int low, int mid, int high){ T left_sum = -99999999; T sum=0; int max_left=mid; for(int i=mid; i>=l原创 2017-06-28 10:19:51 · 277 阅读 · 0 评论