![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
baobei0112
这个作者很懒,什么都没留下…
展开
-
C++ 学习
c++学习原创 2022-07-23 17:50:07 · 312 阅读 · 0 评论 -
CMake构建CUDA项目中使用的CMakeLists.txt配置
# CMakeLists.txt for G4CU projectproject(test_cuda_project)# required cmake versioncmake_minimum_required(VERSION 2.8)# packagesfind_package(CUDA)# nvcc flagsset(CUDA_NVCC_FLAGS -gencode arch=compute_20,code=sm_20;-G;-g)#set(CUDA_NVCC_FLAGS -genco.转载 2022-03-19 17:30:37 · 5399 阅读 · 1 评论 -
vector 删除元素
因为vector的插入操作可能造成记忆体重新配置,导致原有的迭代器全部失效,所以要特别注意vector的迭代器失效问题!!迭代器失效具体原因:因为顺序容器内存是连续分配(分配一个数组作为内存),删除一个元素导致后面所有的元素会向前移动一个位置。(删除了一个元素,该元素后面的所有元素都要挪位置,所以,iter++,已经指向的是未知内存)。所以对vector的任何操作,一旦引起控件重新配置,指向原vector的所有迭代器就都失效了。解决方法:用erase方法可以返回下一个有效的iterator,这转载 2022-03-07 08:38:49 · 2606 阅读 · 0 评论 -
pytorch怎么使用c++调用部署模型?
Refs:https://www.zhihu.com/question/66532235一种思路是:ONNX + Caffe2,现将pytorch模型转为caffe2模型,然后再操作。看起来很复杂。参考:https://pytorch.org/tutorials/advanced/super_resolution_with_caffe2.html另一种思路是:基于Pytorch 1.0 Preview版+(注意当前该版本暂没有windows发行版),现将模型编译成c++可读的形式,然后重写.转载 2021-04-23 17:33:04 · 402 阅读 · 0 评论 -
Clion debug查看数组中的内容
1.Clion在debug时无法查看数组中的内容,只是显示数组的首地址,问题如下:2.解决方式如下,点击“+”标志:3.输入*(int(*)[10])(a),回车。ps: 我的数组名为a, int类型, 10个元素4.显示数组内容,如下:...转载 2021-04-23 10:02:32 · 1305 阅读 · 1 评论 -
find_package常用记录
1.两种模式Moudule模式:搜索CMAKE_MODULE_PATH指定路径下和自己的Moudules目录下的FindXXX.cmake文件。Config模式:搜索指定路径下的XXXConfig.cmake或者XXX-config.cmake文件。2.寻找到之后将定义以下常用变量<LibaryName>_FOUND<LibaryName>_INCLUDE_DIR or <LibaryName>_INCLUDES<LibaryNam..转载 2021-04-21 16:41:56 · 130 阅读 · 0 评论 -
map,hash_map和unordered_map 实现比较
map介绍Map是STL[1]的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有转载 2017-12-19 16:11:58 · 283 阅读 · 0 评论 -
从头到尾彻底解析Hash表算法
说明:本文分为三部分内容, 第一部分为一道百度面试题Top K算法的详解;第二部分为关于Hash表算法的详细阐述;第三部分为打造一个最快的Hash表算法。 第一部分:Top K 算法详解 问题描述(百度面试题): 搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节。假设目前有一千万个记录(这些查询串的重复度比较高,虽然总数转载 2017-12-19 16:04:08 · 194 阅读 · 0 评论 -
typedef用法总结
不管实在C还是C++代码中,typedef这个词都不少见,当然出现频率较高的还是在C代码中。typedef与#define有些相似,但更多的是不同,特别是在一些复杂的用法上,就完全不同了,看了网上一些C/C++的学习者的博客,其中有一篇关于typedef的总结还是很不错,由于总结的很好,我就不加修改的引用过来了,以下是引用的内容(红色部分是我自己写的内容)。用途一:定义一种类型的别转载 2017-12-19 14:57:38 · 170 阅读 · 0 评论 -
C++中的STL中map用法详解
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据 处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一 种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识转载 2017-12-18 10:31:04 · 199 阅读 · 0 评论 -
c++ 面试题
1 strcpy函数:注意由于字符串数组长度的问题带来内存访问越界,注意'\0'的问题2 写出完整版的strcpy函数:先给出我第一直觉写的,简直惨不忍睹:[cpp] view plain copyvoid strcpy(char*s1, char* s2) { assert(s1==NULL || s2==NULL)转载 2017-10-19 11:19:50 · 196 阅读 · 0 评论 -
排序--面经
视频学习网址:点击打开链接参考书籍《算法导论》Pre比较:理论时间: 堆排序 归并排序 快速排序最坏时间 O(nlogn) O(nlogn) O(n^2)最好时间 O(nlogn) O(nlogn) O(nlogn)平均时转载 2017-10-19 11:16:10 · 251 阅读 · 0 评论 -
编程思想
1,执行语句 实现数据库插入语句 userInfoMapper.insertSelective(userInfo);不能简单这样执行,考虑如果出现意外要有抛异常机制,应该用下面这种方式:try {userInfoMapper.insertSelective(userInfo);} catch (Exception e){//insert database原创 2017-08-24 15:10:04 · 217 阅读 · 0 评论 -
MFC修改button的颜色、背景、边框
MFC的button控件是一个不同于其他控件,其CButtton类是CWnd的一个子类,在修改button的背景、颜色和边框的时候必须自己进行编写一个新的类,如CMyButton。下面是进行背景、颜色、边框修改的步骤:1.在项目->添加类->CMyButton。这样会自动生成两个文件,一个.CPP文件和一个.h文件。例如CMyButton.cpp和CMyButton.h2.在你的主转载 2016-07-20 11:36:44 · 4552 阅读 · 1 评论 -
算法学习
1,动态规划将原问题拆解成若干子问题,并保存子问题的答案,使得每个子问题只解决一次,最终获得原问题的答案。递归问题——>重复子问题、最优子结构——>记忆化搜索(自顶向下) ——>动态规划(自底向上)eg。斐波那契数列 0 1 1 2 3 5 8 13...#include &...原创 2018-03-07 17:41:08 · 187 阅读 · 0 评论 -
c++ map映射表
map<int,int> myMap; 创建一个map后是有初始值的,初始值为0;if(myMap.find(42)!=myMap.end()) //即使myMap里没有42,但这样访问了一次以后,会自动插入一个键42到myMap,值为0要想删掉该键值,就要使用 myMap.erase(42)...原创 2018-03-05 14:09:18 · 1406 阅读 · 0 评论 -
c++ 文件输入输出
C++文件流:fstream // 文件流ifstream // 输入文件流ofstream // 输出文件流文件操作:打开文件 文件名 注意路径名中的斜杠要双写,如: "D:\\MyFiles\\ReadMe.txt" 文件打开方式选项: ios::in = 0x01, //供读,文件不存在则创建转载 2015-07-01 09:31:56 · 526 阅读 · 0 评论 -
HDR opencv 代码
#include "opencv2/photo.hpp"#include "opencv2/imgcodecs.hpp"#include "opencv2/highgui.hpp"#include <vector>#include <iostream>#include <fstream>using namespace cv;using..转载 2019-01-23 14:57:34 · 627 阅读 · 0 评论 -
pthread_mutex_t 和 pthread_cond_t 配合使用的简要分析
pthread_mutex_t 和 pthread_cond_t 配合使用的简要分析 1.原理假设有两个线程同时访问一个全局变量 n,这个全局变量的初始值等于0。Int n = 0 ; 消费者线程 A 进入临界区,访问 n,A 必须等到 n 大于 0 才能接着往下执行,如果 n== 0,那么 A 将一直等待。 还有一个生产者线程 B,B 进...转载 2018-07-25 13:41:39 · 665 阅读 · 0 评论 -
CLion LINUX 2018.1.1 激活破解方法
在打开的License Activation窗口中选择“License server”, 在输入框输入下面的网址:http://idea.codebeta.cn (感谢Rachelsalaheiyo提供)或者http://idea.imsxm.com/点击:Activate即可激活。PS:激活时间不能保证,先用吧! 2018.1.24上面的好像都被封了 ,用这个 h...转载 2018-06-14 17:19:48 · 7397 阅读 · 0 评论 -
char *和char[]的初始化
昨晚上随便尝试写了下一个简单的reverse函数,就是颠倒字符的顺序,结果出现问题.研究了半天,大致是关于char* 和char[]初始化的.char* str1 = "abcd";char str2[] = "abcd";void reverse(char * input, int len)...转载 2018-05-15 18:47:29 · 27991 阅读 · 0 评论 -
编译器的工作过程
源码要运行,必须先转成二进制的机器码。这是编译器的任务。 比如,下面这段源码(假定文件名叫做test.c)。#include <stdio.h>int main...转载 2018-05-11 16:47:42 · 171 阅读 · 0 评论 -
C和C++混合编译,extern"C"的用法
2017年02月05日 14:22:00阅读数:6083 第一篇:转载于C和C++混合编译关于extern_C 通常,在C语言的头文件中经常可以看到类似下面这种形式的代码#ifdef __cplusplus extern "C" { #endif /**** some declaration or so ***...转载 2018-05-11 13:15:02 · 191 阅读 · 0 评论 -
QT编译错误
1. Linux gcc编译error:"collect2: ld returned 1 exit status"2016年06月27日 14:03:33阅读数:38303 在Linux环境下编一个工程,无论怎么编译总是出现错误,提示如下: bmeta_info.cpp:4280: undefined reference to ...转载 2018-05-11 09:54:57 · 352 阅读 · 0 评论 -
MFC修改对话框及控件背景颜色 - 很轻松!
1、修改静态文本框、编辑框、按钮等子控件的显示效果MFC中对主窗口和子控件重绘之前都会调用OnCtlColor函数来进行一些基本的属性设置,如设置子控件的背景模式(是否透明等)、文本颜色、字体等属性。因此要实现对子控件的背景颜色、文本颜色或字体背景等属性的修改就可以重载WM_CTLCOLOR消息的响应函数.此函数的原型:afx_msg HBRUSH OnCtlCol转载 2016-07-20 11:01:26 · 21109 阅读 · 2 评论 -
CMFCButton类介绍
CMFCButton类介绍此类是基于MFC基本CButton类型集成而来的,具备CButton拥有的基本按钮属性和操作方法,此外它还具有一些特殊的功能:----------------------------------------------------------------------------------------更改文字: button->SetWindo转载 2016-07-20 11:00:26 · 8624 阅读 · 0 评论 -
浅谈你对面向对象编程的认识
面向对象编程强调抽象、封装、继承、多态抽象:我们在定义一个抽象类的时候,实际上就是把一类事物共有的属性和行为提取出来,形成一个物理模型(模版),这种研究问题的方法称为抽象。你可以这样来想,抽象就是一个类的最基础的东西,比方说人,他的抽象类可能就是都从母体出来,有皮肤。但具体到你是黑人,白人,还得黑人类,白人类来说明 。封装:就是将类的属性包装起来,不让外界轻易的知道他的内部实现转载 2016-03-22 11:37:20 · 391 阅读 · 0 评论 -
caffe 学习 c++编程
1、 使用模板,泛型编程 template typename Dtype>Net::Net(const NetParameter& param) { Init(param);} 代码中到处可见 使用模板, 主要是 输入类型 多样性, 使用模板 是代码通用性更强2、尽量封装,使用纯虚函数,构造抽象类, 虚函数 实现封装继承从 data层 卷积层代码可以看出3、 使用转载 2016-03-22 11:30:43 · 735 阅读 · 0 评论 -
视频标注工具
视频标注工具由于实验室里面需要做CDVA的标准,CDVA(compact descriptor for video analysis),主要是基于CDVS中的紧凑视觉描述子来做视频分析,之前是紧凑视觉描述子主要应用在图像检索领域。需要制作新的数据集,对视频帧进行标注,所以根据网上一个博主的标注工具进行了一定的修改,实现的功能是在每一帧中将需要标注的区域用鼠标选取4个点,顺序是顺时针。因为四边形转载 2016-01-29 11:19:51 · 1849 阅读 · 2 评论 -
字符串连接
1. strcat char *strcat (char *dest,const char *src)strcat 是面向过程的,对于string格式的字符串,由于string有自己的内存管理机制,不能使用strcat直接操作string类型字符串如果要想连接两个string类型字符串 str1 and str2可以采用string自带的字符串连接方式 + =原创 2016-01-28 13:49:16 · 419 阅读 · 0 评论 -
C++之多态性与虚函数
C++之多态性与虚函数 面向对象程序设计中的多态性是指向不同的对象发送同一个消息,不同对象对应同一消息产生不同行为。在程序中消息就是调用函数,不同的行为就是指不同的实现方法,即执行不同的函数体。也可以这样说就是实现了“一个接口,多种方法”。 从实现的角度来讲,多态可以分为两类:编译时的多态性和运行时的多态性。前者是通过静态联编来实现的,比如C++中通过函数的重载和运算符的重载。后者转载 2015-08-10 11:06:46 · 423 阅读 · 0 评论 -
string 成员函数
//C++ string 函数列表【 C++ string|C++ string所有的成员函数】/*-----------------------------------------begin 得到指向字符串开头的Iterator end 得到指向字符串结尾的Iterator rbegin 得到指向反向字符串开头的Iterator rend 得到指向反向字符串结尾的Ite转载 2015-06-24 16:43:53 · 622 阅读 · 0 评论 -
bug调试
1.运行时,中断。错误提示:terminate called after throwing an instance of 'std::logic_error' what(): basic_string::_S_construct NULL not validgoogle了一下,发现问题是,将NULL赋值给std::string变量。参考网址:http://gcoder.blogbus原创 2015-06-24 17:39:05 · 474 阅读 · 0 评论 -
如何使用C#加密解密XML文档
如何使用C#加密解密XML文档 .NETFramework提供了几种类,可用于对 XML数据进行加密和解密,以及创建和验证 XML数字签名。这些类提供了维护 XML数据的保密性和完整性的方法。在这里,我们只涉及如何使用.NETFramework本身提供了的EncryptedXml类进行加密和解密。该类提供了一些方法,能够让用户使用不同的算法进行加密和解密XML。转载 2015-06-24 10:03:33 · 3020 阅读 · 0 评论 -
面试题
完全二叉树: 除了下面一层,其余层全部都是度为2的节点(有zuoyo)原创 2014-09-18 09:39:54 · 478 阅读 · 0 评论 -
征服C指针
第2章 C是怎么使用内存的2.1 虚拟地址 在如今的运行环境中,应用程序面对的是虚拟地址空间。 fgets(buf,sizeof(buf),stdin); sscanf(buf,"%d",&hoge); // 将buf写入到hoge2.2 C 的内存使用方法2.2.1 C的变量种类原创 2014-07-11 10:31:00 · 595 阅读 · 0 评论 -
图片爬虫程序
做图像处理,经常需要上网上下载图像,一个个的下载很慢, 所以学习 爬虫程序。 http://www.cnblogs.com/fnng/p/3576154.html 参考网址http://blog.csdn.net/huangxy10/article/details/8120106 c++ 爬虫代码, ,有些图片不错, 就想用Python写几行代转载 2016-03-22 11:37:45 · 533 阅读 · 0 评论 -
c++ 抽象类
最近在看caffe layer代码, 感觉作者利用抽象基类,使这个代码结构特别清晰,下面特意总结一下抽象基类一、抽象类目的:抽象类是为了抽象和设计的目的而建立的,处于继承层次结构的上层。具体类是能够建立对象的类。二、抽象类的规定(1)抽象类只能用作其他类的基类,不能建立抽象类对象。(2)抽象类不能用作参数类型、函数返回类型或显式转换的类型。转载 2016-03-22 11:38:34 · 682 阅读 · 0 评论 -
caffe caffe.cpp 程序入口分析
caffe.cpp 程序入口分析, (1)main()函数中,输入的train,test,device_query,time。 通过下面两行进入程序。 if (argc == 2) { return GetBrewFunction(caffe::string(argv[1]))(); (2)GetBrewFunction()函数定转载 2016-03-22 11:40:40 · 640 阅读 · 0 评论 -
Leetcode常用五大算法思想
分治算法一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)…… 任何一个可以用计算机求解的转载 2016-07-29 15:20:53 · 495 阅读 · 0 评论