C++/C
文章平均质量分 92
Digital2Slave
图像处理算法,机器学习,深度学习及其应用。
展开
-
MNN实践[C++版本]
阿里MNN推理框架实践[C++版本],涵盖两个目标检测实践示例。原创 2022-09-13 10:49:59 · 1393 阅读 · 0 评论 -
strncpy_s 和 strcat_s
char* p_source = "tianzhaixing.bin"; unsigned int len = static_cast (strlen(p_source) - 4); char* p_name = (char*) malloc(len); strncpy_s(p_name, len+1, p_source, len); strcat_s(p_name, len+5, ".t原创 2015-01-04 11:29:38 · 1967 阅读 · 0 评论 -
Vim--编程珠玑向量翻转
#include#includeusing namespace std;void FindNumberOfMoreTwoTimesAppear(int pInt[], int length){ // pInt 所指数组为有序数组, // length 数组长度 if(pInt == NULL || length <= 0) return; for(in原创 2014-12-08 22:57:31 · 901 阅读 · 0 评论 -
VIM--矩阵转置运算
#include#includeusing namespace std;void PrintMatrix(vector >& Matrix){ int n = Matrix.size(); for(int i = 0; i < n; ++i) { cout << "[" ; for(int j = 0; j < n; ++j)原创 2014-12-09 22:54:41 · 1564 阅读 · 0 评论 -
C++/C学习困惑知识点...不断更新ing
1. 区别:是包含一些C字符串的操作函数,包含一些常用的C字符串处理函数,比如strcmp、strlen、strcpy之类的函数与原来的对应。但头文件的内容在名字空间std 中。包含的是C++的string类。原创 2014-03-31 19:41:22 · 1167 阅读 · 0 评论 -
《程序员面试宝典-第四版》之递归学习
本文主要是类似杨辉三角阵的两种不同实现算法.../*** Problem:* if m = 1, f(m,n) = n;* if n = 1, f(m,n) = m;* if m > 1, n > 1, f(m,n) = f(m-1,n) + f(m,n-1)*/#include using namespace std;#define RECURSION 0#d原创 2014-03-25 19:57:54 · 1432 阅读 · 0 评论 -
C++位运算
本文代码主要是对《程序员面试宝典(第四版)》中第12章位运算与嵌入式编码章节的位运算进行学习,实验检测了自己的理解。#include #include using namespace std;// 1struct a{ int x : 1; int y : 2; int z : 3;};//2#define BIT_MASK(bit_pos) (0x01<<原创 2014-04-03 14:28:10 · 1046 阅读 · 0 评论 -
C++dynamic_cast
#include #include using namespace std;class A{public: virtual void foo() {cout << "A foo" << endl; } void pp() {cout << "A PP" << endl;}};class B:public A{public: void foo() { cout << "B原创 2014-04-03 14:57:41 · 865 阅读 · 0 评论 -
指针数组&&数组指针
#include #include using namespace std;int main(){ cout << "Example 1 :" << endl; int v[2][10] = {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, {11, 12, 13, 14, 15, 16, 17, 18, 19, 20}}; int (*a)[10] = v;原创 2014-03-21 20:32:42 · 1032 阅读 · 0 评论 -
C++指针类型
void (*f)(); // 函数指针void *f(); // 函数返回指针const int *; // 指向const的指针int const *; // 指向const的指针int *const ; // const指针const int * const ; // 指向const的const指针float(**def)[10]; def 是一个二级指针,它指向原创 2014-03-20 20:26:01 · 1394 阅读 · 5 评论 -
C++ 引用,指针
#include using namespace std;void swap1(int &p, int &q){// 引用数值交换 int temp; temp = p; p = q; q = temp;}void swap2(int *p, int *q){// 指针数值交换 int temp; temp = *p; *p = *q; *q = temp;}原创 2014-03-20 19:40:40 · 1152 阅读 · 0 评论 -
指针,比特位操作
为了找工作,最近在看《程序员面试宝典》第四版,发现之前学习C++都是太肤浅了。原来比特位操作还可以很灵活的运用哈...1.用一个表达式判断一个数X是不是2的N次方(N为整数),不可用循环语句。!(X&(X-1))2.不使用任何中间变量,交换a和b的值。a = a^b;b = a^b;a = a^b;3.指针和基于比特位运算的小算法#i原创 2014-03-08 20:28:16 · 3351 阅读 · 0 评论 -
Code::blocks C++宏,const,指针
今天接触了小型的编译器,但是功能非常强大,名字叫Code::blocks,来自室友推荐的http://tieba.baidu.com/p/2846007324?fr=ala0&pstaala=3百度贴吧。功能强悍,可以编译好多程序,构建好多工程,如QT, GUI, ARM,C++/C等等...1.软件编程截图:2.宏函数,宏定义,const和指针#include #inc原创 2014-03-11 21:10:04 · 1345 阅读 · 0 评论 -
C++ sort函数
sort函数:#include ,默认从小到大,如果降序可写第三方函数进行排序,EXP:sort(array,array+n,cmp)1.普通排序,升序#include #include using namespace std;int main(){ int a[10]={7,3,4,6,5,1,2,9,8,0}; sort(a,a+10); for(int i=0;i<10转载 2014-02-22 21:12:27 · 1367 阅读 · 0 评论 -
类的构造函数,析构函数,赋值函数
// 提示strcpy安全问题,解决方法#define _CRT_SECURE_NO_WARNINGS#include #include using namespace std;class MyClass{public: MyClass(); ~MyClass(); void foo(){cout << "A" << endl;}private:};MyClass原创 2014-09-15 17:57:50 · 749 阅读 · 0 评论 -
VS2015快捷键大全
转载 Ctrl+E,D —-格式化全部代码 Ctrl+E,F —-格式化选中的代码 CTRL + SHIFT + B生成解决方案 CTRL + F7 生成编译 CTRL + O 打开文件 CTRL + SHIFT + O打开项目 CTRL + SHIFT + C显示类视图窗口 F4 显示属性窗口 SHIFT + F4显示项目属性窗口 CTRL + SHIFT + E显示资源视图转载 2016-07-02 16:50:07 · 23304 阅读 · 0 评论 -
OpenCV shape detection -- C++版本
本文主要参考OpenCV shape detection ,用C++版的OpenCV API进行重写。源码ShapeDetector.h#pragma once#ifndef SHAPEDETECTOR_H_#define SHAPEDETECTOR_H_#include <iostream>#include <vector>#include <string>using namespace原创 2017-09-08 16:49:55 · 3573 阅读 · 0 评论 -
libcurl console 中文乱码
libcurl是一个很好的Windows系统中RESTFul测试库。 但是,如果在Windows的命令行(console)环境下执行,则会出现中文乱码的问题。这个是因为一般网页端的编码格式为UTF-8,而Windows的console环境,编码格式为GBK。 因此,需要用到编码转换工具LibIconv转码所需文件iconv.exelibcharset1.dlllibiconv2.dlll原创 2017-07-07 15:41:42 · 2982 阅读 · 0 评论 -
How to split string in C++(分割字符串)
本文以C++代码的形式,展现了如何分割字符串对象。源码#include <iostream>#include <string>#include <vector>#include <sstream>using namespace std;void printVec(vector<string> &res){ for (size_t i = 0; i < res.size(); i+原创 2017-07-13 10:07:19 · 614 阅读 · 0 评论 -
封装DLL到EXE
在Windows系统用VS2015开发程序时,往往需要结合第三方动态库进行高效开发。然而,在程序进行迭代更新时,如果出现需要更新多个第三方库的需求,这就会对更新的工作带来不必要的麻烦。比如:遗漏更新某个动态库导致执行程序无法正常执行。 因此,我们在发布执行程序的时候,可以把一些第三方动态库封装到执行程序中,从而减小更新导致的执行程序无法正常运行问题。准备软件本文采用Enigma Virtual B原创 2017-03-22 17:26:17 · 2472 阅读 · 0 评论 -
Read the result of DOS command in C++
C++代码中调用DOS执行命令行代码(可以包含参数),并保存DOS命令行执行结果。int getResultOfDOS(string command) { char psBuffer[1024]; FILE *pPipe; if ((pPipe = _popen(command.c_str(), "rt")) == NULL) { exit(1);原创 2017-02-28 17:37:26 · 838 阅读 · 0 评论 -
Convert string to int in C++
Method-1std::stoi(str);// str is your number as std::string. C++11 need.Method-2string a = "25";int b = atoi(a.c_str());Method-3std::istringstream ss(thestring);ss >> thevalue;原创 2017-02-28 17:32:03 · 1543 阅读 · 0 评论 -
Qt官方开发环境生成的exe发布方式--使用windeployqt
参考来自这里Qt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,如果自己去复制dll,很可能丢三落四,导致exe在别的电脑里无法正常运行。因此 Qt 官方开发环境里自带了一个工具:windeployqt.exe。以官方 Qt 5.4.0+MinGW 开发环境为例,从开始菜单--》Qt 5.4.0--》5.4--》MinGW 4.9转载 2017-01-17 09:01:49 · 1008 阅读 · 0 评论 -
string中c_str()、data()、copy(p,n)函数的用法
转自 csqlwy 博客标准库的string类提供了3个成员函数来从一个string得到c类型的字符数组:c_str()、data()、copy(p, n)。1. c_str():生成一个const char*指针,指向以空字符终止的数组。注:①这个数组的数据是临时的,当有一个改变这些数据的成员函数被调用后,其中的数据就会失效。因此要么现用先转换,要么把它的数据转载 2016-11-23 12:54:59 · 732 阅读 · 0 评论 -
MFC删除文件夹
目前做的图像识别项目需要,对指定文件夹内子文件夹进行定期清理删除工作。由于之前没有用过MFC,就在网上搜到了一个删除文件夹的代码,如下所示:void DeleteDirectory(CString strDir){ if(strDir.IsEmpty()) { RemoveDirectory(strDir); return; } //首先删除文件及子文件夹 CFil原创 2016-10-28 11:36:16 · 1725 阅读 · 0 评论 -
堆和栈的区别
一、预备知识—程序的内存分配一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,转载 2016-11-07 19:45:21 · 428 阅读 · 0 评论 -
Mac Xcode 8+ && Qt5.7 Error
错误信息 Project ERROR: Xcode not set up properly. You may need to confirm the license agreement by running /usr/bin/xcodebuild解决方法In Xcode 8, as Bruce said, this happens when Qt tries to find xcrun whe原创 2016-11-07 19:18:40 · 1074 阅读 · 0 评论 -
C/C++常识
1 C语言中的数据类型1.1 基本类型整型(int)字符型(char)实型 单精度实型(float)双精度实型(double)1.2 构造类型数组类型结构类型(struct)联合类型(union)枚举类型(enum)1.3 指针类型1.4 空类型(无值类型) (void)2 C/C++不同2.1 C/C++中新增数据类型 C/C++ 逻辑类型 真 假 C原创 2016-09-30 09:32:29 · 742 阅读 · 0 评论 -
Build boost in Windows7 64bit VS2013
一背景二编译步骤三编译问题四测试demodemo1demo2demo3参考一、背景最近在一周在做自然场景中图像文本检测和识别相关的工作,图像中文本检测阶段完成80%,识别部分准备用一下谷歌的TensorFlow框架。考虑到,后期用于训练图像C++代码部分会用到boost库,所以今天下午就试着下载和编译一下boost.二、编译步骤Boost官网下载,Boost1.61.0.解压下载文原创 2016-08-13 11:21:53 · 1836 阅读 · 0 评论 -
Visual Studio 代码注释模板
一、准备1. 安装Visual Studio插件VAssitXVAssitX (提取码:7617)2. 设置注释模板打开 VAssistX -> Visual Assist X Options.. -> Suggestions -> Edit VA Snippets 在弹出的VA Snippet Editor窗口中,点击左上角的New(Insert)图标。然后,输入名称;例如CodeCommen原创 2016-08-30 15:34:32 · 5186 阅读 · 0 评论 -
图像BPR,MSE,RMSE,PSNR求取模块
本模块采用opencv中的Mat类型对图像进行操作其中,SrcImageRec为原始参考图像,SrcUp为处理后的图像!#pragma region Criterion BPR MSE RMSE PSNR Mat BadImage = Mat::zeros(SrcUp.size(),SrcUp.type()); double BRP = 0.0,Mse = 0.0 , Rms原创 2014-02-21 11:07:57 · 4139 阅读 · 0 评论 -
指针和引用的主要区别
1.解释指针和引用的主要区别。 使用引用(reference)和指针(pointer)都可间接访问另一个值,但它们之间存在两个重要区别:(1)引用总是指向某个确定对象(事实上,引用就是该对象癿别名),定义引用时没有进行初始化会出现编译错误;(2) 赋值行为上存在差异:给引用赋值修改的是该引用所关联癿对象的值,而不是使该引用不另一个对象关联。引用一经初转载 2013-12-14 10:23:20 · 1288 阅读 · 0 评论 -
define宏定义和const常量定义之间的区别
define部分:宏不仅可以用来代替常数值,还可以用来代替表达式,甚至是代码段。(宏的功能很强大,但也容易出错,所以其利弊大小颇有争议。)宏的语法为:#define 宏名称 宏值注意,宏定义不是C或C++严格意义上的语句,所以其行末不用加分号结束。作为一种建议和一种广大程序员共同的习惯,宏名称经常使用全部大写的字母。利用宏的优点:1)让代码更简洁明了当然,这有赖转载 2013-09-09 18:33:09 · 2499 阅读 · 0 评论 -
string 字符串首字母转换为大写&&数组基本操作
#include //IO输入输出流相关#include //C++#include //C#include //size_t#include //内置模版容器using namespace std;//命名空间int main(){ string s("John_Tian 2013.9.3"); cout<<s<<endl;//输出原始字符串 string::it原创 2013-09-03 19:17:08 · 3913 阅读 · 0 评论 -
简单文件数据读入处理
#include #include //文本文件输入输出头文件#include // 函数exit()原型头文件#include //数组大小正确类型头文件using namespace std; //命名空间//const int SIZE = 60;int main(){ const size_t SIZE=60原创 2013-09-09 21:06:08 · 1626 阅读 · 0 评论 -
简单文本文件输出
#include #include // 文件输入输出头文件using namespace std;int main(){ char automobile[50]; int year; double a_price; double d_price; ofstream outFile; // 创建写出文件对象 outFile.open原创 2013-09-09 19:52:58 · 1293 阅读 · 0 评论 -
string 类应用
//using namespace #include #include using std::cin;using std::cout;using std::endl;using std::string;using std::getline;//example_10#include using std::isupper; using std::toupper;using s原创 2013-09-09 10:57:19 · 985 阅读 · 0 评论 -
C++ new创建动态结构(Notepad++ 运行C++实现)
//note:动态结构使用方式#includestruct inflatable{ char name[20];r float volume; double price;};int main(){ using namespace std; inflatable * ps=new inflatable;//创建一个未命名的inflatable类型 co原创 2013-07-30 19:59:57 · 1608 阅读 · 0 评论 -
分别采用C语言和C++输出数据到txt文本
C语言的实现#include FILE *fpo; FILE *fpt; int main( int argc, char** argv ){ fpo=fopen("po.txt", "w+"); fpt=fopen("pt.txt", "w+"); fprintf(fpo,转载 2013-07-03 20:53:27 · 5746 阅读 · 2 评论 -
C/C++中printf和C++中cout的输出格式
一、 Printf 输出格式C中格式字符串的一般形式为: %[标志][输出最小宽度][.精度][长度]类型,其中方括号[]中的项为可选项。各项的意义介绍如下:1.类型类型字符用以表示输出数据的类型,其格式符和意义下表所示:表示输出类型的格式字符 格式字符意义a转载 2013-06-30 20:26:44 · 2162 阅读 · 0 评论