c++
文章平均质量分 75
Shwan_Ma
模式识别小硕,向大牛看齐!
展开
-
C++11语言特性梳理
关于C++11C++11 is the second major version of C++ and the most important update since C++98. A large number of changes were introduced to both standardize existing practices and improve the abstractions available to the C++ programmers.Before it was finall原创 2022-06-05 17:02:38 · 454 阅读 · 1 评论 -
【Caffe】从C++的角度源码剖析深度学习框架Caffe -- Blob篇
写在前面本系列所剖析的caffe源码来自于master分支, commit: 9b891540。本系列不会特别着重于深度学习的网络层构造的实现方式,而是从工程角度看C++的语言特性及设置。首先介绍一下caffe的代码布局:头文件放在: include //文件夹而源文件则在: src/caffe/ //文件夹这种设置的原因很简单,src文件的源码会被编译成库去被调用,而头文件的存在则作为api提供。Blob类Blob.hpp1. 尽量以Const, enum, inline, 替换原创 2021-06-27 16:06:29 · 707 阅读 · 3 评论 -
【C++】令operator= 返回一个reference to *this
这几天看到《Effective C++》中条款10中, 令operator= 返回一个reference to *this, 说这个是协议, 并没有强制性,这个协议被所以内置类型和标准程序库提供的类型如string, vector, complex,tr::shared_ptr所接受。对operator=返回值类型的讨论举个书上的例子:int x,y,z;x = y = z = 15;(x = y) = z = 15那么我们将会存在疑问, 为什么返回的不是int, 不是void, 而是int原创 2020-06-26 17:42:12 · 640 阅读 · 0 评论 -
【C++】在子函数中调用malloc申请内存的方法
在函数体内申请内存。解决办法1. 在函数体内申请完内存后,将地址返回int* test(){ int *p = (int*)malloc(sizeof(int)*100); return p;}2. 用二级指针修改指针指向地址void test(int **ptr){ *ptr = (int*)malloc(sizeof(int)*100);}易错点函数体传参为1级指...原创 2020-05-03 16:10:01 · 1562 阅读 · 1 评论 -
【C++】函数与二维数组
为编写将二维数组作为参数的函数,必须牢记,数组名被视为地址,因此相应的形参是一个指针,比较难处理的是如何正确声明指针。在被调用函数中对形参数组定义时可以可以指定所有维数的大小,也可以省略第一维的大小说明。如:void Func(int array[3][10]);void Func(int array[][10]);二者都是合法而且等价,但是不能把第二维或者更高维的大小省略,如下面的定义是不合法原创 2017-08-03 13:20:35 · 2121 阅读 · 2 评论