C/C++
粼粼淇
淇水汤汤,波光粼粼。岸芷汀兰,郁郁青青。
从事计算机视觉,机器学习等方面算法的工作,爱好数学、算法、编程、中国古典文学、哲学,喜欢旅游,爱思考、爱推理;追求卓越、追求极致。
展开
-
libtorch中cat函数的使用
在使用libtorch中经常用到vector和cat使用的情况,在此写了几个例子;需要注意的是,cat拼接tensor时必须时连续的tensor。原创 2022-12-10 20:55:44 · 463 阅读 · 0 评论 -
c++中使用模板和类,编译时报未定义错,可能的解决方法
今天使用c++模板写了几个函数,函数声明放在.h文件中,定义放在.cpp文件中,恩似乎大家都是这么写c++的,但是编译链接时出现了未定义的错误,这确实让我愕然,最后经过朋友指点,发现是使用模板的原因,使用模板时声明和定义不要分开,具体啥原因咋也不清楚,不过网上找到了一篇讲解这个的分析。c++ - 模板方法的未定义引用错误 - Code Examplesc++ - 模板头文件 - 为什么只能在头文件中实现模板?原创 2022-12-05 17:19:01 · 1521 阅读 · 0 评论 -
c++ 一维vector 通用打印函数
其中print可以正常使用,print2编译都不通过,老是报error: ‘it’ was not declared in this scope,具体原因也不知道,大概是类型实例化是造成的.原创 2022-11-18 17:41:05 · 1173 阅读 · 0 评论 -
ubuntu下配置vscode和opencv4要点记录
首先上一下参考文献:1 visual studio code(vscode) c++ 编译opencv并运行调试visual studio code(vscode) c++ 编译opencv并运行调试_zoeou的博客-CSDN博客2【工程配置】ubuntu下基于vscode进行opencv调试_小Teemo历险记-CSDN博客3 史上最全vscode配置使用教程 - 知乎4 ubuntu16.04+VS Code+OpenCV配置编译运行程序 - 明楼 - 博客园5 Ubuntu原创 2021-10-18 19:09:49 · 1238 阅读 · 0 评论 -
c++ opencv中的normalize简单测试
vector<double>a = {1,2,3,4};//normalize(a, a,1,0,NORM_L1);//newa=a/suma==>0.1,0.2,0.3,0.4 //normalize(a, a,0,1,NORM_L1);//输出全部是0//normalize(a, a,1,0,NORM_L2);//newa=a/norma==>0.182574 0.365148 0.547723 0.730297normalize(a, a,1,0,NORM_MINM原创 2021-10-18 16:37:11 · 1660 阅读 · 0 评论 -
从文件名或文件路径中获取文件名或纯文件名的c程序
#include <stdio.h>#include <stdlib.h>#include <string.h> char *getfilename(const char *filepath,int isincludeextname){ char *filepath_start = NULL; if (NULL == filepath) { printf("the path filepath is NULL\n"); .原创 2020-09-02 10:17:21 · 418 阅读 · 0 评论 -
堆排序算法
一、堆排序算法原理堆排序是利用堆的性质进行的一种选择排序。 堆实际上是一棵完全二叉树,其任何一非叶节点满足性质: Key[i]=Key[2i+1]&&key>=key[2i+2] 即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。 堆分为大顶堆和小顶堆,满足Key[i]>=Key[2i+1]&&key>=key[2i+2]称为大顶堆,满足Key[i]给定一组原创 2017-06-25 12:17:58 · 236 阅读 · 0 评论 -
点是否在多边形内的射线判别法及其特殊处理C程序
点是否在多边形内,是一个很经典的问题,方法也很成熟,但是去github或网上找的资料感觉有些乱,我在他们基础上做了整理,点是否在多边形内的判别方法有多种,其算法具体原理在此不赘述,有比较好的博客,我一并放置在此。我要做的是使用射线法来判断点是否在多边形内部并使用C语言实施了其判定过程。 射线判别法原理如下: 从目标点出发引一条射线,看这条射线和多边...原创 2020-03-18 11:57:21 · 1526 阅读 · 0 评论 -
C程序中批量写数据到文件操作
有时在测试中需要批量写数据到文件,简化的具体点:在一个for循环中遍历一个二维数据,根据数组每一行中首数据,确定当前这行数据要写到那个文件中去,对于这个问题python等操作非常方便,但对于C程序来说操作却有些麻烦,因为这意味着你要打开多个文件句柄,但是细想一下,这个问题也不难,因为这个操作有规律,而且是大批量写数据,因此使用指针数组,然后for循环就好,如果大批量些数据使用swi...原创 2020-03-13 22:02:32 · 729 阅读 · 0 评论 -
Linux下使用C语言查找一个文件夹下指定扩展名的所有文件
最近在linux下要干点和c语言相关的任务,其中涉及使用C语言查找一个文件夹下指定扩展名的所有文件,我去开始在网上查找后粘贴后不能用,最后发现是windows下才能使用。最后找到了一篇不错的文章,https://www.cnblogs.com/fnlingnzb-learner/p/6472391.html这个是遍历当前目录下所有文件及其子文件夹,但是不太符合我的需求,我只需遍历当...原创 2020-03-13 18:41:23 · 3156 阅读 · 0 评论 -
Linux C 遍历目录下的所有文件
原文链接:http://blog.sina.com.cn/s/blog_6d041c110100nxk7.html#include <unistd.h>#include <stdio.h>#include <dirent.h>#include <string.h>#include <sys/stat.h>void prin...转载 2020-03-09 18:12:53 · 1697 阅读 · 0 评论 -
关于CUDA向量求和并行规约最后一个warp的展开理解
CUDA向量求和并行规约有很多内容涉及,在此只说并行规约最后一个warp的展开理解。我参考的是:Professional CUDA C中的chapter3中的一个例子。Professional CUDA C写的非常好,层次分明,逐渐深入,一个例子从最原始实施到逐步优化完善;cuda官网上也有并行规约:https://developer.download.nvidia.cn/assets/c...原创 2019-10-06 20:58:07 · 681 阅读 · 3 评论 -
关于const void *Pointer 和 void *const Pointer问题
原文链接:https://www.cnblogs.com/xiaokangkp0602/p/9293059.htmlconst void *a这是定义了一个指针a,a可以指向任意类型的值,但它指向的值必须是常量。在这种情况下,我们不能修改被指向的对象,但可以使指针指向其他对象。例如:const void *a;*a=0x123;//是编译通不过的,因为*a中放的是个const值...转载 2019-05-18 21:16:48 · 426 阅读 · 0 评论 -
Eigen 库的配置
Eigen 是一个基于C++模板的线性代数库。据说使用起来很方便和Matlab的矩阵操作有的一比,以前也没用过,今天闲来没事搞搞看看,实验后的感觉还不错。因此把这个库从安装到简单示例记录一下。 1、 Eigen 库下载网页 http://eigen.tuxfamily.org/index.php?title=Main_Page ...原创 2017-07-23 11:32:07 · 1198 阅读 · 1 评论 -
C语言函数可变参数处理简介
在c语言编程中,有时会遇到函数可变参数的情况,c语言没有像C++那样具有函数重载的机制,不过c语言还是考虑到了这方面的问题,设计了几条语句来处理这种情况。 下面就以实例来说明这个语句的使用,部分说明就包含在程序中了吧。 1、求取一个可变数组的均值// ConsoleApplication8.cpp : 定义控制台应用程序的入口点。#include "stdafx.h"原创 2017-09-03 17:00:10 · 739 阅读 · 0 评论 -
C语言二叉排序树的创建
在实际应用中,很多场合会涉及到数据结构中的树,二叉树作为最简单的树,则有很多重要的用处。而二叉树又细分为好多类型,在此只说二叉排序树,这种类型的树有个比较好的特性就是,中序遍历这棵树,你将得到一个按升序排列的数组。下面以一维数组来创建一棵二叉排序树。 #include "stdafx.h"#include #include using namespace std;typed原创 2017-09-25 16:11:43 · 5905 阅读 · 0 评论 -
C语言双链表的创建
实际中经常会用到双链表的地方,在此简单搭建了一个双链表创建双链表的程序。由于代码简单明了在此就不赘述双链表的创建过程描述,加之代码中有注解,那就直接见代码。 #include "stdafx.h"#include #include using namespace std;typedef struct List{ int Data; struct List *Pre;//前原创 2017-09-25 15:46:02 · 751 阅读 · 0 评论 -
矩阵的转置和行列式等操作的c语言实现
矩阵的转置和行列式等操作的c语言实现,是我当初练习C语言时写的一个小程序,这个程序是按线性代数上的讲解直接转化来编写的,其实好多软件都自带求解矩阵的库,比如OpenCV,Matlab等,也有些一些标准库如C++ Eign库,砸门自己写的一般绝对是没有这些库函数运行效率高的,更何况是采用这种直接转化的方式,这么做似乎有些闭门造车了,当然对于某些人来说这些确实没必要,但也总会有些人会去尝试理解或知道这原创 2017-09-03 18:19:25 · 7176 阅读 · 3 评论