
C++ Primer
文章平均质量分 73
马•晓
职位:机器视觉工程师 CV Engineer
主要研究方向:机器视觉 工业数据分析
主要编程语言:C++ Python Matlab
主要技能:机器视觉 机器学习 统计分析 OpenCV Halcon PaddlePaddle OpenVINO Scikit-learn
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Jetson Xavier NX下编译安装Qt
在Jetson NX上安装Qt作为IDE原创 2022-12-10 16:03:30 · 1547 阅读 · 0 评论 -
提高C++性能的编程技巧
一些提高C++软件性能的编程技巧原创 2022-11-28 20:23:26 · 1066 阅读 · 0 评论 -
类型转换
一、隐式类型转换在C++中,某些类型之间有关联。如果两种类型有关联,那么程序需要其中一种类型的运算对象时,可以用另一种关联类型的对象或值来替代,则这两种类型是可以相互转换的。如果类型转换是自动执行,无需程序员介入的,则被称为隐式转换(implicit conversion)。在以下情况中,编译器会自动进行类型转换:(1)在大多数表达式中,比int类型小的整型值首先提升为较大的整数类型;(2)在判断条件中,非布尔值转换成布尔类型;(3)初始化过程中,初始值转换成变量的类型;在赋值语句中,右侧运算对象原创 2020-11-17 14:22:31 · 673 阅读 · 0 评论 -
lambda表达式
一、定义一个lambda表达式表示一个可调用的代码单元,可以将其理解为一个未命名的内联函数。与任何函数类似,一个lambda具有一个返回类型、一个参数列表和一个函数体。但与函数不同,lambda可能定义在函数内部。lambda表达式的具体形式如下:[capture list](parameter list)->return type {function body}其中,capture list是一个lambda所在函数中定义的局部变量的列表(通常为空);return type、paramete原创 2020-11-10 08:49:15 · 996 阅读 · 0 评论 -
智能指针
一、new和deleteC++定义了两个运算符来分配和释放动态内存。运算符new分配内存,delete释放new分配的内存。相对于智能指针,使用这两个运算符管理内存非常容易出错。在新标准下,使用new分配动态内存时,可使用{}来初始化对象。出于与变量初始化相同的原因,对动态分配的对象进行初始化通常是个好主意。一个动态分配的const对象必须进行初始化。虽然不能创建一个大小为0的静态数组对象,但当n等于0时,调用new[n]是合法的,即:char arr[0]; // 错误 不能定义长度为0的数组原创 2020-11-03 17:04:38 · 681 阅读 · 0 评论 -
第6章 函数
一个典型的函数定义包括以下部分:返回类型、函数名字、由0个或多个形参组成的列表以及函数体。函数的调用完成2项工作:(1)用实参初始化函数对应的形参(2)将控制权转移给被调用函数,此时主调函数的执行被暂时中断,被调函数开始执行为了与C语言兼容,对于没有形参的函数,在其参数列表中添加void关键字,如:void fun(void);函数的返回类型不能是数组类型或函数类型,但可以是指向数组或函数的指针。函数声明也称作函数原型。自动对象和局部静态对象(1)对于普通局部变量对应的对象来说,当函数的原创 2020-09-10 22:54:46 · 174 阅读 · 0 评论 -
第5章 语句
for语句中的init-statement可以定义多个对象,但是其只能有一条声明语句,因此,所有变量的基础类型必须相同。范围for语句,即:for (declaration: expression){ statement;}其等价于如下传统for语句:for (auto beg=v.begin(), end=v.end(); beg!=end; ++beg){ auto &r = *beg; // statement}如果需要对序列中的元素执行写操作,循环变量必须声明成引原创 2020-09-08 22:51:56 · 218 阅读 · 0 评论 -
第4章 表达式
可以做一个简单的归纳:当一个对象被用作右值的时候,用的是对象的值(内容);当对象被用作左值的时候,用的是对象的身份(在内存中的位置)。在需要右值的地方可以用左值来代替,但是不能把右值当成左值(也就是位置)使用。当一个左值被当成右值使用时,实际使用的是它的内容(值)。如果表达式的求值结果是左值,decltype作用于该表达式(不是变量)得到一个引用类型。有4种运算符明确规定了运算对象的求值顺序:(1)逻辑与(&&)运算符,从左到右(2)逻辑或(||)运算符,从左到右(3)条件(?:原创 2020-09-06 19:40:22 · 180 阅读 · 0 评论 -
第3章 字符串、向量和数组
位于头文件中的代码,一般来说不应该使用using声明。这是因为头文件的内容会拷贝到所有引用它的文件中去,如果头文件里有某个using声明,那么每个使用了该头文件的文件就都会有这个声明。string类型的s1+s2返回的是s1和s2字符串的拼接结果。有时我们希望能在最终得到的字符串中保留输入时的空白符,这时应该用getline函数代替原来的>>运算符。器从给定的输入流中读入内容,直到遇到换行符为止。如果输入真的一开始就是换行符,那么得到的结果就是一个空string。string对象的比较:原创 2020-09-05 22:39:28 · 126 阅读 · 0 评论 -
第2章 变量和基本类型
基本内置类型long是32位的长整型,long long是64位的长整型,其是C++ 11新定义的。除去布尔型和扩展的字符型之外,其他整型可以划分为带符号的和无符号的两种。其中char和signed char并不一样。尽管字符型有3种,但是字符的表现形式却只有2种:带符号的和无符号的。类型char实际上会表现为上述两种形式的哪一种,具体由编译器决定。选择类型时的注意事项:(1)如果你的数值超过了int的范围,可选用long long。(2)在算术表达式中不要使用char或bool,只有存放字符或原创 2020-09-05 21:49:17 · 133 阅读 · 0 评论 -
第1章 开始
标准库定义了4个IO对象:(1)标准输入cin(2)标准输出cout(3)标准错误cerr,其用来输出警告和错误信息(4)clog,其用来输出程序运行时的一般性信息使用标准IO读取数量不定的输入数据:#include <iostream>int main(){ int sum = 0; int value = 0; // 读取数据直到遇到文件尾 while (std::cin >> value) sum += value; std::cout <原创 2020-09-01 22:40:07 · 126 阅读 · 0 评论