c++
文章平均质量分 69
curry dog
自然语言处理
展开
-
error: ‘getCurrentCUDAStream’ is not a member of ‘at::cuda’ cudaStream_t stream = at::cuda::getCurre
Trytomodifythefollowingcontentinthefileswhichprompttheerrorsabove.#include//#include#include#include#include“ball_query_gpu.h”//externTHCState*state;原创 2022-07-25 18:13:59 · 2627 阅读 · 0 评论 -
python 和 c++交互
setup 编写#!/usr/bin/env python# example2from distutils.core import setupsetup(name='Distutils', version='1.0', description='Python Distribution Utilities', author='Greg Ward', author_email='gward@python.net', url='https://原创 2020-10-29 12:39:35 · 1127 阅读 · 1 评论 -
报错previous declaration invalid use of incomplete type
报错之前typedef struct float cut_val; int8_t cut_dim; uint32_t start_idx; uint32_t n; float cut_bounds_lv; float cut_bounds_hv; struct Node_float *left_child; struct Node_float *right_child;} Node_float;修改之后typedef struct N原创 2022-05-25 13:32:12 · 509 阅读 · 0 评论 -
windows c++ 包管理 vcpkg clion
安装VCPKGgit clone https://github.com/microsoft/vcpkg.\vcpkg\bootstrap-vcpkg.bat使用以下命令安装您的项目所需要的库:.\vcpkg\vcpkg install [packages to install]您也可以使用 search 子命令来查找vcpkg中集成的库:.\vcpkg\vcpkg search [search term]若您希望在 Visual Studio 中使用vcpkg,请运行以下命令 (首原创 2021-12-24 22:34:36 · 2139 阅读 · 0 评论 -
函数返回内部变量时报错 error: use of deleted function
问题描述:为了确保函数返回内部对象时会调用移动构造函数而不是拷贝构造函数,把对象所属类中的默认拷贝构造函数用=delete删除,但是执行时报错解决方法:造成问题的原因是对象的内部成员对象不能进行移动构造,比如对象内部有一个mutex成员。...原创 2021-07-11 20:37:56 · 7414 阅读 · 0 评论 -
深度探索c++对象模型笔记
关于对象一个对象 的大小跟类内非静态成员总和大小,因为对齐而填补的空间以及为了支持virtual 而产生的额外空间。不同类型的指针在表示方法和内容并没有什么不同,留给编译器来解释某个特定地址中的内存内容及其大小。黑色部分是基类ZooAnimal对象的内容,指向基类的指针根据vptr的内容选择虚函数调用的实体。Bear b;ZooAnimal za =b ;za.rotate();上面额情况中,如果不使用指针,而是直接用子类对象b初始化基类对象za,就会引起内存的切割slice。虚函数r..原创 2021-07-10 14:49:15 · 262 阅读 · 1 评论 -
c++排序和红黑树
红黑树1.节点分为红色或者黑色;2.根节点必为黑色;3.叶子节点都为黑色,且为null;4.连接红色节点的两个子节点都为黑色(红黑树不会出现相邻的红色节点);5.从任意节点出发,到其每个叶子节点的路径中包含相同数量的黑色节点;6.新加入到红黑树的节点为红色节点;插入Case 1当前节点的父节点是红色,且当前节点的祖父节点的另一个子节点(叔叔节点)也是红色。(01) 将“父节点”设为黑色。(02) 将“叔叔节点”设为黑色。 (03) 将“祖父节点”设为“红色”。 (原创 2021-06-26 16:11:48 · 325 阅读 · 0 评论 -
CLION 从脚本中调试c++ 程序
问题描述在以下webget_t.sh脚本中调用了可执行程序webget#!/bin/bashWEB_HASH=`./apps/webget cs144.keithw.org /hasher/xyzzy | tee /dev/stderr | tail -n 1`CORRECT_HASH="QWx0NhMPkoM/bJr/ohvHXlviFhOyYrYb+qqdOnwLYo4"if [ "${WEB_HASH}" != "${CORRECT_HASH}" ]; then echo ERR原创 2021-05-31 22:29:52 · 512 阅读 · 1 评论 -
makefile 学习
target ... : prerequisites ... commandprerequisites 中如果有一个以上的文件比 target 文件要新的话, command 所定义的命令就会被执行。这就是 Makefile 的规则。也就是 Makefile 中最核心的内容。只要 make 看到一个[.o]文件,它就会自动的把[.c]文件加在依赖关系中,如果 make 找到一个 whatever.o,那么 whatever.c,就会是 whatever.o 的依赖文件。并且 cc -cwhat原创 2021-05-10 23:20:41 · 287 阅读 · 1 评论 -
剑指OFFER
找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。位图法:class Solution {public: int findRepeatNumber(vector<int>& nums) { int * bitmap; int index,bit,tmp; int siz原创 2021-01-23 16:18:13 · 138 阅读 · 0 评论 -
二进制 leetcode
目录背景背景异或^满足结合律和交换律a=0 ^ a0=a ^ aa=a^ b ^b交换a和b:a=a ^ bb=a ^ ba=a ^ b整理得:b=a ^ b ^ b=aa=a ^ b ^ b ^ a ^ b=a ^ a ^ b=b原创 2020-12-28 15:02:32 · 152 阅读 · 0 评论 -
leetcode c++
leetcode二叉树从前序与中序遍历序列构造二叉树 迭代解法(官方实现)验证二叉搜索树二叉树从前序与中序遍历序列构造二叉树 迭代解法(官方实现)class Solution {public: TreeNode* buildTree(vector<int>& preorder, vector<int>& inorder) { if (!preorder.size()) { return nullptr;原创 2020-12-28 15:02:06 · 482 阅读 · 0 评论 -
操作系统真相还原笔记
bochs 使用编译汇编代码。nasm -I include/ -o mbr.bin mbr.S 将生成的 mbr.bin 写入我们的虚拟硬盘dd if=./mbr.bin of=/your_path/bochs/hd60M.img bs=512 count=1 conv=notrunc 同理将loader.bin写入硬盘nasm -I include/ -o loader.bin loader.S && dd if=./loader.bin of=./hd60M.img原创 2020-12-01 19:56:16 · 1569 阅读 · 0 评论 -
c++ 无锁队列
class Queue{private: struct qnode<ElemType> *volatile _head = NULL; // 随着pop后指向的位置是不一样的, head不是固定的 struct qnode<ElemType> *volatile _tail = NULL;public: Queue() { _head = _tail = new qnode<ElemType>; _head->_next =原创 2020-11-23 19:34:40 · 815 阅读 · 0 评论 -
linux多进程,文件描述符,锁,posix信号
多进程中,每个进程维护一个文件描述表,指向系统维护的打开文件表,而打开文件表指向文件系统i-node表。打开文件表项记录着文件的读写位置。一般情况下,open操作新建一个文件描述表项和对应的打开文件表项。特殊情况:同一进程打开同一文件两次,也会新建两个描述符和两个打开文件表项目。使用dup函数时,会新建描述符并指向旧的打开文件表项,并使打开文件表项的引用次数加1子进程会复制一个描述表,fork之后父子进程分别open,和多进程一般情况一样。fork之前open, 各自的描述项指向同一打开文件表项原创 2020-11-18 16:07:15 · 256 阅读 · 0 评论 -
RRPN笔记
求overlaps判定一个点是否在另一个矩形中__device__ inline bool inrect(float pt_x, float pt_y, float * pts) { // pt_x,pt_y是待判定的点 double ab[2]; double ad[2]; double ap[2]; double abab; double abap; double adad; double adap; ab[0] = pts[2] - pts[0]; .原创 2020-10-30 14:45:49 · 279 阅读 · 0 评论 -
CNN原理总结
基础知识一般来说我们会使用一种叫混合布局的思路,即如果是向量或者矩阵对标量求导,则使用分子布局为准,如果是标量对向量或者矩阵求导,则以分母布局为准。对于向量对对向量求导,有些分歧,文章中会以分子布局的雅克比矩阵为主。标量对矩阵求导(分母布局):df=∑i=1m∑j=1n∂f∂XijdXij=tr((∂f∂X)TdX)df=\sum\limits_{i=1}^m\sum\limits_{j=1}^n\frac{\partial f}{\partial X_{ij}}dX_{ij} = tr((\fr原创 2020-10-28 14:49:28 · 453 阅读 · 1 评论 -
cmake杂记
变量PROJECT_BINARY_DIR 编译目录,即build目录PROJECT_SOURCE_DIR 工程目录SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)在哪里 ADD_EXECUTABLE 或 ADD_LIBRARY,如果需要改变目标存放路径,就在哪里加入上述的定义命令FIND_FILE( name1 path1 path2原创 2020-10-22 12:25:05 · 476 阅读 · 0 评论 -
C++ 语法杂记
STLlistList是一个接口,而ArrayList是List接口的一个实现类。 ArrayList类继承并实现了List接口。 因此,List接口不能被构造,也就是我们说的不能创建实例对象,但是我们可以像下面那样为List接口创建一个指向自己的对象引用,而ArrayList实现类的实例对象就在这充当了这个指向List接口的对象引用。...原创 2020-09-28 15:50:25 · 2148 阅读 · 1 评论 -
c++ uchar float转换
在uchar范围0-255内可以转换#include <iostream>#include "squaresum.h"#include <stdio.h>int main(){ float f=255; unsigned char c; c =(unsigned char) f; printf("%u %c\n",c,c); f=256; c =(unsigned char) f; printf("%u %c\n",c,c);}输出255 �0原创 2020-09-26 11:17:25 · 2208 阅读 · 0 评论 -
cmake find catkin报错
问题描述CMake Error at CMakeLists.txt:68 (message):find_package(catkin) failed. catkin was neither found in the workspace norin the CMAKE_PREFIX_PATH. One reason may be that no ROS setup.sh wassourced before.解决方法加上:-DCMAKE_PREFIX_PATH=/opt/ros/melodic原创 2020-09-24 01:20:32 · 1004 阅读 · 0 评论 -
全局变量放在头文件中
今天遇到一个坑,在VS上进行多文件的编译运行的时候,在头文件中定义了全局变量a,该头文件被类的实现CPP和主函数所在的CPP包含且声明extern int a。但是在链接的时候报多重定义的错误。网上看了下,这篇文章给出了一个答案:能不能在头文件中定义全局变量?。总结起来就是,报错的原因就是有两个CPP,各自生成自己的OBJ,那么在查找符号的时候,都能发现对方那里也有一个变量a,那么就报错了。所以,如果你能保证你的头文件只被包含一次,那么可以在其中定义此外链接性的变量,如果无法保证的话,引用作者的话“那么你就转载 2020-09-17 11:52:09 · 2068 阅读 · 0 评论 -
linux 利用共享内存 在进程间传递图像
cmakelists.txtcmake_minimum_required(VERSION 2.8 FATAL_ERROR)project(test_share)find_package(OpenCV 3 REQUIRED)include_directories( ${CMAKE_CURRENT_LIST_DIR})message(STATUS ${CMAKE_CURRENT_LIST_DIR})file(GLOB_RECURSE mains ${CMAKE_CURRENT_SOURCE_原创 2020-09-13 20:40:53 · 600 阅读 · 1 评论 -
leetcode 回溯法
子集给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。class Solution {public: vector<vector<int>> paths; void track(vector<int>& nums, int start, vector<int>& tmp){ paths.push_back(tmp); for(int原创 2020-08-31 10:10:03 · 93 阅读 · 0 评论 -
leetcode 滑动窗口和KMP
最小覆盖子串给你一个字符串 S、一个字符串 T 。请你设计一种算法,可以在 O(n) 的时间复杂度内,从字符串 S 里面找出:包含 T 所有字符的最小子串。示例:输入:S = “ADOBECODEBANC”, T = “ABC”输出:“BANC”class Solution {public: string minWindow(string s, string t) { map<char,int> st; int needNum=t.size()原创 2020-08-31 10:09:41 · 624 阅读 · 0 评论 -
cmake 添加多个可执行文件
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)project(testfilter)find_package(PCL 1.2 REQUIRED)include_directories(${PCL_INCLUDE_DIRS})link_directories(${PCL_LIBRARY_DIRS})add_definitions(${PCL_DEFINITIONS})file(GLOB_RECURSE mains ${CMAKE_CURRENT_原创 2020-08-29 21:50:13 · 1958 阅读 · 0 评论 -
leetcode动态规划
reverse-string给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。例如,给定三角形:[[2],[3,4],[6,5,7],[4,1,8,3]]自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。class Solution {public: int minimumTotal(vector<vector<原创 2020-08-14 00:06:31 · 443 阅读 · 1 评论 -
LeetCode 二分搜索
搜索区间给定一个包含 n 个整数的排序数组,找出给定目标值 target 的起始和结束位置。如果目标值不在数组中,则返回[-1, -1]思路: 利用tmplate 3, 求结束位置的时候把tmplate 3中的小于号改成小于等于号。class Solution {public: /** * @param A: an integer sorted array * @param target: an integer to be inserted * @return原创 2020-07-27 15:32:11 · 127 阅读 · 0 评论 -
QMAKE OPENCV项目
在.pro中加入INCLUDEPATH += /home/wby/opencv3/include \ /home/wby/opencv3/include/opencv \ /home/wby/opencv3/include/opencv2LIBS += -L/home/wby/opencv3/lib/ -lopencv_highgui -lopencv_core -limgpro -limgcoders\原创 2020-07-26 19:50:24 · 597 阅读 · 0 评论 -
basler 虚拟相机的使用
根据官方文档,添加环境变量PYLON_CAMEMU可以控制虚拟相机的数量在c++中利用putenv来添加环境变量#include <stdlib.h>...std::string newEnv = "PYLON_CAMEMU=2";putenv(newEnv.c_str());相应的转换层也要换成“BaslerCamEmu”CTlFactory& TLFactory = CTlFactory::GetInstance();ITransportLayer * pTl =原创 2020-07-13 21:21:50 · 1353 阅读 · 0 评论 -
Qimage 读取buffer中的图片
uchar* buff = (uchar*)pInBuffer->GetBuffer(); int nHeight = pInBuffer->GetHeight(); int nWidth = pInBuffer->GetWidth(); QImage imgBuff(buff, nWidth, nHeight, QImage::Format_Indexed8); OutImage = imgBuff;...原创 2020-07-11 15:17:42 · 2035 阅读 · 1 评论