C++
文章平均质量分 62
mjiansun
Live and Learn.
展开
-
Visual Studio配置opencv环境
(如果配置的是debug模式则输入结尾为****d.lib的, 如果是release模式则去掉d,我的opencv版本是480,需要根据自己版本进行修改)(1)打开属性页面(鼠标放在解决方案上,点击右键会有一个属性选项弹出)(3)配置opencv的lib文件(库目录)(2)配置opencv的include和。路径,具体路径和版本根据自己电脑配置。(5)测试代码(图片路径自行修改)转载 2024-09-19 16:18:39 · 87 阅读 · 0 评论 -
【C++】#ifdef #endif #ifndef 定义+代码详解
int main()#ifdef NYJ#else#endif运行结果:此时因为标识符“NYJ”被定义了,因此编译器会对#ifdef 后面的内容进行编译,与此同时跳过对#else后面内容的编译。运行结果:此时标识符“NYJ”未被定义,因此编译器不会对#ifdef后面的内容进行编译,与此同时对#else #endif 后面内容进行编译。注释:在以上代码中,#else并非必须出现。转载 2023-07-26 11:27:54 · 4649 阅读 · 0 评论 -
【C++】全局变量定义在哪里合适
链接的时候就会出错。另外,在一些编译器中会提示你加static,当你在头文件中定义全局变量的时候,加了static的全局变量表示只在该源文件中有效,不管是.h还是.c,所以你某个源文件中能编译通过,在使用的时候发现,这个全局变量地址怎么不一样,这就是因为加了static的缘故,相当于你在两个原文件中分别定义了static的同名变量,因为static修饰作用,不会重名报错,但是很有可能跟你初始想法就不一样了。最近审核代码发现,有些刚入门的同学在头文件中定义了全局变量,链接报错重定义。转载 2023-02-28 17:06:00 · 1355 阅读 · 0 评论 -
【C++】%d,%05d,%-5d,%.5d的区分
5d是将数字按宽度为5,采用右对齐方式输出,若数据位数不到5位,则左边补空格。%d,%05d,%-5d,%.5d的区分。%05d,和%5d差不多,只不过左边补0。%.5d从执行效果来看,和%05d一样。转载 2023-03-13 17:18:07 · 3957 阅读 · 0 评论 -
OpenCV基础类型3(固定向量类cv::Vec<>、Vec2i、Vec3i、Vec3f、Vec2f)
OpenCV中固定向量模板类cv::Vec派生自固定矩阵类cv::Matx,固定矩阵类解释参照我的博文OpenCV基础类型2,即使不知道固定矩阵类也不影响我们使用固定向量类,为了方便使用,固定向量类定义了一些别名,了解这些别名的规则至关重要。里面介绍了固定矩阵类,固定向量类是由它派生而来,向量是一个只有一列的矩阵(在OpenCV中),注意OpenCV里面的向量都是列向量,计算时也按列向量计算。{b, s ,w , i, f, d}表示向量内数据类型。{2,3,4,6}代表向量的长度。转载 2023-03-02 12:00:25 · 1002 阅读 · 0 评论 -
VS调试时查看动态数组的全部元素
用VS的快速监视查看数组内容。进入调试状态后,工具栏调试中找到快速监视。转载 2023-02-13 19:30:15 · 1077 阅读 · 0 评论 -
【VS】在Windows下用VS构建C++工程项目生成dll文件+python调用
暂时仅是搬运,实测等后续当我们用C++写了一个项目后,我们可能会希望其他项目能够很方便地调用它并且能够供其他语言进行调用,因此,我们便需要将该项目打包成一个dll文件。转载 2023-01-31 14:02:08 · 1282 阅读 · 0 评论 -
有符号整数二进制和十进制的转换
十进制转二进制:求-5的补码,过程如下:-5对应正数5(00000101)→所有位取反(11111010)→加1(11111011),所以-5的补码是11111011。数0的补码表示是唯一的。二进制转十进制:给定一个有符号二进制数11111011,先减去1等于11111010,再取反00000101,得到的十进制数为-5。原创 2022-12-02 20:32:14 · 6932 阅读 · 1 评论 -
【Cmake】在Windows下用Cmake构建C++工程项目——python调用dll——5
1)在目录下,新建文件夹;2)在t3下,新建目录和文件。lib是用来存放源文件的。3)在目录lib下,新建。目录下的}一定要记得加这一步,不然python访问不到函数。转载 2022-09-07 09:13:04 · 779 阅读 · 0 评论 -
【Cmake】在Windows下用Cmake构建C++工程项目——如何使用外部共享库和头文件——4
1)在目录下,新建t4文件夹;2)在t4下,新建目录和文件。src是用来存放源文件的。lib存放库3)在目录src下,新建CMakeLists.txt和main.cpp。4)将上一节生成的两个库文件hello.lib和hello.dll放入目录lib下t 内容:内容:INCLUDE_DIRECTORIES(D:/vs_test/cmake_test/t3/lib) #为了包含hello.h。转载 2022-09-06 14:38:09 · 579 阅读 · 0 评论 -
【Cmake】在Windows下用Cmake构建C++工程项目——更好一点的Hello World——2
1)在目录下,新建文件夹;2)在t2下,新建目录和文件。src是用来存放源文件的。3)在目录src下,新建和。转载 2022-09-06 14:29:21 · 691 阅读 · 0 评论 -
【Cmake】在Windows下用Cmake构建C++工程项目——cmake 的 helloworld——1
参考资料:《Cmake 实践》 Cmake Practice --CjackerCmake 实践,是在Linux系统环境下讲解的,有些地方在Windows下看不到该有的效果,而且第一节因为给出的代码有点小问题,所以也运行不成功,所以我重新在Windows环境下,自己整理一下。转载 2022-09-06 14:16:31 · 1741 阅读 · 0 评论 -
【Cmake】在Windows下用Cmake构建C++工程项目——构建静态库与动态库——3
1)在目录下,新建文件夹;2)在t3下,新建目录和文件。lib是用来存放源文件的。3)在目录lib下,新建。目录下的。转载 2022-09-06 14:02:25 · 1634 阅读 · 0 评论 -
【数据结构与算法之美】07 | 链表练习
使用单链表实现如下功能单链表反转链表中环的检测两个有序的链表合并删除链表倒数第 n 个结点求链表的中间结点#include <iostream>#include <stdio.h>//单链表反转//链表中环的检测//两个有序的链表合并//删除链表倒数第 n 个结点//求链表的中间结点typedef struct _Node{ int value; struct _Node *next;}LinkList;void InitCircle.原创 2021-04-22 13:19:31 · 135 阅读 · 0 评论 -
【数据结构与算法之美】08 | 栈的练习
// StackPractice.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"class ArrayStack{private: int*arr; int n=0; int location=0;public: void InitArr(int n) { this->arr = new int[n]; this->n = n; } bool push(int x) { if (this->location ...原创 2021-04-22 13:13:14 · 89 阅读 · 0 评论 -
关于C++中 指针,地址,指针变量 三者之间的区别和联系
指针是C和C++的重点,也是后面学习数据结构的基础,因此深刻理解指针的概念很重要。但是指针的概念比较抽象,难于理解,而且一些复杂的程序中都是离不开指针的,如果不能理解指针,那么就不能理解较为复杂的程序了,作者结合了自己学习C++的经验,对指针,指针变量,地址作如下阐述。1.什么是指针 程序中最离不开的就是变量,而变量相当于是一个容器,是用来存放数据的,变量是存放在内存中的。在C++ 中定义变量的形式是: 数据类型 + 变量名,这里的变量名实际上是一个符号地址,在程序编译时,操作系统将...转载 2021-04-20 16:47:20 · 1735 阅读 · 0 评论 -
【C++】判断一个单链表的数据是否为回文字符串?
#include <iostream>using namespace std;typedef char Elemtype;typedef struct _NList { Elemtype value; struct _NList* next;}LinkList;char arr[5] = {'a', 'b', 'c', 'b', 'a'};void main() { LinkList* L; L = (LinkList *)malloc(sizeof(LinkList).原创 2021-04-07 10:03:59 · 264 阅读 · 0 评论 -
【C++】定义一个数组一定要给出长度吗?
静态数组是要指定大小的。你需要的是动态数组例://定义一个动态数组arrayint *array;// 运行中知道其大小为num, 此时再为其分配内存array = new int[num];// 然后可以像静态数组一样使用array[0] = 1;array[100]=300;// 最后释放内存delete[] array;...转载 2021-04-02 17:21:08 · 3298 阅读 · 0 评论 -
【Leetcode】经典排序算法学习C++
// base_sort.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"void BubbleSort(int* data, int total_len) { int temp = 0; for (int i = 0; i < total_len - 1; i++) { for (int j = 0; j < total_len - i - 1; j++) { if (data[j] > data[j+1]) { te.转载 2020-08-05 10:41:26 · 298 阅读 · 0 评论 -
凸包算法(convex hull)
凸包算法其实很简单,就是用一个的凸多边形围住所有的点。就好像桌面上有许多图钉,用一根紧绷的橡皮筋将它们全部围起来一样。算法详细步骤:1. 找到所有点中纵坐标y最小的点,也就是这些点中最下面的点,记为p0。2. 然后计算其余点与该点的连线与x轴之间夹角的余弦值,将这些点按其对于最低点的正弦值从大到小排序,排序好的点记为p1, p2, p3, ......3. 将最低点p0和排序好的点中的第一个点p1压入栈中,然后从p2开始计算,计算栈顶两个点与该点三点向量是否是逆时针转动,若是,则将该点压转载 2020-06-10 10:57:42 · 7508 阅读 · 2 评论 -
【Faiss】简介及示例,索引类型
https://blog.csdn.net/kanbuqinghuanyizhang/article/details/80774609转载 2020-05-12 20:17:33 · 3935 阅读 · 1 评论 -
在python中实现调用可执行文件.exe的3种方法
方法一、os.system() 会保存可执行程序中的打印值和主函数的返回值,且会将执行过程中要打印的内容打印出来import os main = "project1.exe"r_v = os.system(main) print (r_v )方法二、commands.getstatusoutput() 会保存可执行程序中的打印值和主函数的返回值,但不会将执行过程中要打印的内...转载 2020-03-13 12:16:02 · 5168 阅读 · 0 评论 -
【Opencv】C++的findcontours
函数参数详解:https://blog.csdn.net/dcrmg/article/details/51987348原理讲解:https://blog.csdn.net/guduruyu/article/details/69220296 https://blog.csdn.net/tanmx219/article/details/84973542...转载 2019-12-17 11:09:29 · 8015 阅读 · 1 评论 -
【Opencv】cvSeq
简介轮廓是由一个一个像素组成的,如何在内存中存储一个轮廓,就需要用到序列(CvSeq)结构,另外,在处理任何有序关系的动态的对象时可以用到CvSeq。序列是某种结构的链表,可以将序列想象为许多编程语言中都存在的容器类或容器模板类(如C++中的vector),序列在内存被实现为一个双端队列,因此可以实现快速的随机访问,以及快速删除顶端的元素,但是从中间删除元素值则稍慢些。opencv的实现原...转载 2019-12-17 10:59:34 · 1391 阅读 · 1 评论 -
【OpenCV】Point类型操作
1,常用操作总结2、使用的例子//包含OpenCV的头文件//参照github https://github.com/yoyoyo-yo/Gasyori100knock #include <opencv2/opencv.hpp>#include <iostream>using namespace std;//使用OpenCV的命名空间using...转载 2019-12-14 20:01:16 · 2159 阅读 · 0 评论 -
Mex文件怎么用?
转自:http://anony3721.blog.163.com/blog/static/51197420111145534021缘起:看了网上介绍Mex的文章,玩玩不给初学的新手将很基础的概念。而且将了半天不把自己的例子贴出了,或者贴的例子不能运行,这给入门造成了障碍。我想学,看了一下午都没有弄明白,晚上花了一晚上看了Matlab的官方帮助,受益匪浅,终于懂了,贴出来给大家指条明路,希望转载 2017-01-05 15:50:15 · 11259 阅读 · 1 评论 -
向上向下取整
转自:http://blog.sina.com.cn/s/blog_a3137f350100zxy7.html向下取整的运算称为Floor,用数学符号⌊⌋表示;向上取整的运算称为Ceiling,用数学符号⌈⌉表示。例如:⌊59/60⌋=0⌈59/60⌉=1⌊-59/60⌋=-1⌈-59/60⌉=0 在C语言中整数除法取的既不是Floor也不是Ceiling转载 2017-01-06 10:31:27 · 5542 阅读 · 0 评论 -
Python Opencv教程--直方图的计算与显示
http://blog.csdn.net/sunny2038/article/details/9097989http://blog.csdn.net/bigcat133/article/details/41513677http://www.cnblogs.com/denny402/p/5124833.html 本篇文章介绍如何用OpenCV Python来计算直方图,并简略介绍用N...转载 2017-07-10 18:40:47 · 590 阅读 · 1 评论 -
BMP文件格式详解(BMP file format)
如果真想了解bmp,这篇转自https://www.cnblogs.com/wainiwann/p/7086844.html的博客值得耐心阅读。BMP格式详解BMP文件格式详解(BMP file format)BMP文件格式,又称为Bitmap(位图)或是DIB(Device-Independent Device,设备无关位图),是Windows系统中广泛使用的图像文件格式。由于它可以...转载 2018-09-11 14:23:11 · 47712 阅读 · 3 评论 -
ubuntu安装anjuta
前言鉴于不断有网友将编译器 GCC 误认为 IDE(集成开发环境)期望脱离命令行 期望能在菜单中发现其身影 期望其能有一个集编辑编译链接调试运行于一体的界面故本文给大家简单罗列一些 C/C++ 编程中可用的 IDE,或许你从中可以找一个你喜欢的。为避免以下某个软件安装时不自动安装 build-essential 不妨先执行:sudo apt-get install buil...转载 2018-09-10 19:57:29 · 2201 阅读 · 0 评论 -
codeblocks的快捷键
ctrl+shift+c可以快速注释掉多行。ctrl+shift+x可以取消注释,才发现,哈哈真方便。转载 2018-09-14 10:28:54 · 432 阅读 · 0 评论 -
Code::Blocks
本教程将向您展示如何在Ubuntu 16.04 / 17.04上安装Code::Blocks。 Code::Blocks是C,C ++和Fortran的免费开源集成开发环境(IDE)。 它可以在Linux,Mac,Windows上运行。 最新版本的Code Blocks 16.01于2016年1月发布。Code::Blocks功能:支持多个编译器,包括GCC,Clang,Visual C ...转载 2018-09-14 09:47:40 · 734 阅读 · 0 评论 -
Ubuntu16.04+codeblocks配置opencv
下图中如果发生图片与文档不相符的情况,一律以文档内容为主。这里用的codeblocks版本为16.01,OpenCV版本为3.3.0。 第一步:下载 opencv-3.3.0.zip 第二部:安装codeblocks 第三步:双击运行opencv-3.3.0.zip,选定一个解压路径 第四步,启动codeblocks,新建一个“Console appli...原创 2018-09-14 10:51:15 · 1546 阅读 · 0 评论 -
【c++】双冒号::
用法(1)作用域限定符,当在类体中直接定义函数时,不需要在函数名字的前面加上类名,但是在类体外实现函数定义的时候,必须加上类名并且加上作用域限定符。Student::Display();(2)静态数据成员既可以通过对象名引用,也可以通过类名加::来引用,class Test{public: Display();private: static int a...转载 2018-09-14 11:20:20 · 563 阅读 · 0 评论 -
【c++】基本数据类型及长度
首先罗列一下C++中的数据类型都有哪些:1、整形:int、long2、字符型:char、wchar_t3、布尔型:bool4、浮点型:float、double5、指针 类型 16位系统/字节 32位系统/字节 64位系统/字节 char 1 ...转载 2018-09-14 11:27:24 · 15262 阅读 · 4 评论 -
Ubuntu 16.04下CLIon使用Makefile单步调试
还没测试,先记录:https://blog.csdn.net/zjchenchujie/article/details/82083453转载 2018-09-14 13:58:45 · 1105 阅读 · 0 评论 -
位、字节、字
位:"位(bit)"是电子计算机中最小的数据单位。每一位的状态只能是0或1。字节:8个二进制位构成1个"字节(Byte)",它是存储空间的基本计量单位。1个字节可以储存1个英文字母或者半个汉字,换句话说,1个汉字占据2个字节的存储空间。字:"字"由若干个字节构成,字的位数叫做字长,不同档次的机器有不同的字长。例如一台8位机,它的1个字就等于1个字节,字长为8位。如果是一台16位机,那么,它...转载 2018-09-11 09:40:01 · 424 阅读 · 0 评论 -
进制
O :Octet, 八进制B :Binary, 二进制H :Hex, 十六进制D :Decimal, 十进制转载 2018-09-11 09:58:45 · 200 阅读 · 0 评论 -
anjuta调试caffe
Caffe也算是一个代码量比较大的工程,阅读代码过程进行调试有助于我们理解代码。1、编译debug模式的Caffe首先要先将Caffe编译成debug模式,即需要将Makefile.config中"DEBUG := 1"前面的注释去掉再进行重新编译,这样就能得到Caffe版本就能够调试。 2、安装IDE要调试的话也需要一个IDE,经过这两天的摸索找到了一个比较满意的IDE:An...转载 2018-09-11 10:37:59 · 355 阅读 · 0 评论 -
anjuta快捷键
点击“运行 -> 调试程序”(或者shitf+F12 进入调试),使用调试快捷键:F5(单步跨入函数)、F6(单步跨过函数)、Shift+F5(单步跨出函数)进行调试。shift+F7编译F3运行ctrl+b 添加或取消断点 ...原创 2018-09-11 10:40:30 · 469 阅读 · 0 评论