C++/C
文章平均质量分 89
FrankJingle
这个作者很懒,什么都没留下…
展开
-
Linux Shell远程执行命令
前提条件:配置ssh免密码登陆对于简单的命令:如果是简单执行几个命令,则:ssh user@remoteNode "cd /home ; ls"基本能完成常用的对于远程节点的管理了,几个注意的点:双引号,必须有。如果不加双引号,第二个ls命令在本地执行 分号,两个命令之间用分号隔开对于脚本的方式:有些远程执行的命令内容较多,单一命令无法完成,考虑脚本方式实...原创 2018-07-21 16:01:47 · 3565 阅读 · 0 评论 -
Hadoop格式化HDFS报错
由hostname引起datanode无法正常启动的一个问题 安装hadoop 2.5.X版本的虚拟机群,在初始化 namenode 时候遇到了如下错误:SHUTDOWN_MSG: Shutting down NameNode at java.net.UnknownHostException: datanode: datanode: unknown error 如果忽略该错原创 2015-12-06 16:22:02 · 2392 阅读 · 0 评论 -
strtok分割字符串
strtok 分解字符串为一组字符串。s为要分解的字符,delim为分隔符字符(如果传入字符串,则传入的字符串中每个字符均为分割符)。首次调用时,s指向要分解的字符串,之后再次调用要把s设成NULL。原型编辑char *strtok(char s[], const char *delim);功能编辑分解字符串为一组字符串。s为要分原创 2015-12-06 15:47:49 · 677 阅读 · 0 评论 -
计算机视觉 Lecture 02 《Light and Shading》
Lecture 02 《Light and Shading》像素点的强度值主要因素为:1.光照的强度和方向2.表面几何图形3.表面的材料4.附近的表面5.摄像机曝光Image filters in spatial domainFilter is a mathematical operation of a grid of numbersSmooth原创 2015-12-06 15:55:54 · 487 阅读 · 0 评论 -
opencv配置相关
1.去除警告我们在程序中使用fopen等CRT函数,就会出现一些警告信息右击工程 - 属性 - 配置属性 - C/C++ - 命令行命令行增加 /D _CRT_SECURE_NO_WARNINGS_CRT_SECURE_NO_WARNINGS2.opencv配置在工程属性里面,vc++directories中修改include 和 library dire原创 2015-12-06 16:29:00 · 380 阅读 · 0 评论 -
C/C++ 之 库
静态库和动态库的区别:静态连接库就是把(lib)文件中用到的函数代码直接链接进目标程序,程序运行的时候不再需要其它的库文件;动态链接就是把调用的函数所在文件模块(DLL)和调用函数在文件中的位置等信息链接进目标程序,程序运行的时候再从DLL中寻找相应函数代码,因此需要相应DLL文件的支持。 静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,l原创 2015-12-13 14:17:38 · 570 阅读 · 0 评论 -
C/C++ 之 restrict关键字
restrict关键字:用于使编译器放心的进行优化。c99中新增加了一个类型定义,就是restrict。看了下网上的相关贴子,但还是问题解决的不够。下面是相关一个文章,我将在后面再加相关说明:那么restrict的意义是什么呢?概括的说,关键字restrict只用于限定指针;该关键字用于告知编译器,所有修改该指针所指向内容的操作全部都是基于(base on)该指针的原创 2015-12-13 14:10:40 · 3083 阅读 · 0 评论 -
C/C++ 之 gdb 调试
1.gcc编译器gcc -c test1.c test2.c -o test-c 选项将每一个源文件编译成对应的目标文件。如果不设置此项,则目标文件中将只有一个.o文件。-l 用于指定包含头文件的目录。-g 该选项可生成能被gdb调试所使用的调试信息。-o 生成二进制可执行程序2.gdb调试器编写代码test.c#includeint main(){ i原创 2015-12-13 14:25:08 · 569 阅读 · 0 评论 -
C/C++ Linux 的C开发中的环境变量
1.命令行参数[root@localhost LearnLinux]# vim testarg.c编辑内容如下#includeint main(int argc, char* argv[]){ int i=0; for(; i<argc; i++) { printf("the %d mes is %s\n",i,argv[i]); }}[root@loca原创 2015-12-13 14:21:54 · 2139 阅读 · 0 评论 -
【C++系列】之 运算符重载
误认为重载了某个运算符,比如+,就自动加载了与它相关的运算符,如+=,将导致错误。 如果要重载(),[],->或者任何赋值运算符,运算符重载函数必须声明为类的成员函数。对于其他运算符,运算符重载函数可以是类成员函数或者全局函数。当运算符函数作为成员函数来实现时,最左边的操作数必须是运算符的一个类对象(或者是对该类对象的一个引用)。如果左操作数必须是一个不同类对象或者一个基本类型对象时,那原创 2015-07-24 20:52:05 · 608 阅读 · 0 评论 -
【c++】函数模版
函数模版用于执行相似的操作,一个简单的实例如下:template T maximun(T value1, T value2, T value3){ T maximuValue = value1; if (value2>maximuValue) maximuValue = value2; if (value3>maximuValue) maximuValue = value3;原创 2015-07-07 14:12:17 · 489 阅读 · 0 评论 -
【资源汇集.转】C++编程学习52个经典网站 强力推荐
转载自http://blog.csdn.net/microzone/article/details/6684436C/C++是最主要的编程语言。这里列出了50名优秀网站和网页清单,这些网站提供c/c++源代码。这份清单提供了源代码的链接以及它们的小说明。我已尽力包括最佳的C/C++源代码的网站。这不是一个完整的清单,您有建议可以联系我,我将欢迎您的建议,以进一步加强这方面的清单转载 2016-03-26 12:49:35 · 535 阅读 · 0 评论 -
【C++】C++ 读取文件最后一行产生的问题
之前写了一个读取文件的代码,发现每次读取的行数都比实际多一行。文档是一行行的数据,最后确实有一个空行,这是因为输出这个文档的时候,每一行都有一个换行符,所以必然导致最后一行有一个空行。这是一个非常普遍的现象,本文就研究一下如何正确的读取文本。首先,我们的测试文档如下,最后的点表示这是一个空行,实际中并没有。new 1.23fan 2jin 4.444ge 0.10203.1. 使用eof来原创 2016-09-01 20:21:26 · 14630 阅读 · 7 评论 -
【C++】使用sstream头文件进行格式转换
sstresam是C++中的一个头文件,提供了比ANSI C的<stdio.h>更高级的一些功能,即单纯性、类型安全和可扩展性。本文讨论如何使用里面的对象安全的进行类型转换。一、基本用法1. 简介C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含sstream.h头文件。istringstream类用于执行C++风格原创 2016-09-02 16:45:55 · 978 阅读 · 2 评论 -
Ncurses 6.0 Compilation Error - error: expected ')' before 'int'
参考 这里 这里Problem descriptionTrying to install ncurses 6.0 on Ubuntu 16.04 LTS is failing with a compilation error:In file included from ./curses.priv.h:325:0, from ../ncurses...原创 2018-07-21 15:56:27 · 2679 阅读 · 0 评论 -
C++11 之 regex 正则表达式
C++11 : regex 正则表达式正则表达式 参考书 正则表达式30分钟入门教程 一个在线检查正则表达式的网址 Regular ExpressionsC++ 11 中定义了使用正则表达式来进行字符串匹配的库,头文件#include <regex> 可以参照 正则表达式库本文参考 Cpp标准库之 std::regex 类的使用举个最简单的例子#include...原创 2018-04-03 15:39:59 · 3748 阅读 · 2 评论 -
Ubuntu 下编译CloudCompare
CloudCompare作为一个查看和编辑3D数据的开源软件,在ubuntu下编译不算太麻烦,但是坑也是有的,记录一下所踩的坑。环境: Ubuntu 16.04 64 位官网 http://www.cloudcompare.org/https://github.com/cloudcompare/cloudcompare在官网上有Ubuntu 的安装方法snap install cloudcom原创 2017-12-27 18:02:14 · 6373 阅读 · 8 评论 -
cmake 使用小结 (一)
安装cmake的安装特别简单,ubuntu下直接$ sudo apt-get install cmake下面以几个版本的hello world为例。版本一mkdir -p /home/cmake_sample/sample01cd /home/cmake_sample/sample01分别建立 main.c 和 CMakeLists.txt文件//main.c#include <stdio.h>原创 2017-03-15 18:27:14 · 600 阅读 · 0 评论 -
【C++】google protobuf库
1、安装原创 2017-03-07 19:56:08 · 5951 阅读 · 0 评论 -
【C++】C++语法的一些小问题
最近使用C++开发时,遇到一些小问题,特此记录自己定义了一个双重vector,就一直报错,例如vector<vector<int>>vec,一直提示cannot appear in a constant-expression。但是这句话在Visual studio 2010 中却能正常运行。 原因:在Linux下,或者C++的某些编译器或者某些版本的...原创 2016-09-01 15:27:55 · 1846 阅读 · 0 评论 -
【Linux工具】tmux
一、简介Tmux 是一个工具,用于在一个终端窗口中运行多个终端会话。不仅如此,你还可以通过 Tmux 使终端会话运行于后台或是按需接入、断开会话,这个功能非常实用。稍后,我们将会看到如何充分地利用这个功能。 Tmux是一款优秀的终端复用软件,可以类比screen,但是比screen要强大。 不使用tmux/screen的时候,当我们通过ssh登录到服务器以后,运行一个前台程序,如果网络出原创 2016-10-12 15:34:44 · 751 阅读 · 0 评论 -
【C++】C语言函数指针基础
参考自 http://blog.jobbole.com/44639/#jtss-ydnote 本文写的非常详细,因为我想为初学者建立一个意识模型,来帮助他们理解函数指针的语法和基础。如果你不讨厌事无巨细,请尽情阅读吧。 函数指针虽然在语法上让人有些迷惑,但不失为一种有趣而强大的工具。本文将从C语言函数指针的基础开始介绍,再结合一些简单的用法和关于函数名称和地址的趣闻。在最后,本文给出一原创 2016-09-02 20:36:45 · 979 阅读 · 0 评论 -
【C++】google glog库
介绍google 出的一个C++轻量级日志库,支持以下功能:参数设置,以命令行参数的方式设置标志参数来控制日志记录行为;严重性分级,根据日志严重性分级记录日志;可有条件地记录日志信息;条件中止程序。丰富的条件判定宏,可预设程序终止条件;异常信号处理。程序异常情况,可自定义异常处理过程;支持debug功能;自定义日志信息;线程安全日志记录方式;系统级日志记录;google perr原创 2016-09-17 18:01:43 · 573 阅读 · 0 评论 -
【C++】google gflags库
介绍gflags是google的一个开源的处理命令行参数的库,使用c++开发,具备python接口,可以替代getopt。gflags使用起来比getopt方便,但是不支持参数的简写(例如getopt支持--list缩写成-l,gflags不支持)。安装暂留(TODO)基础使用需要引用头文件#include <gflags/gflags.h>在使用命令行参数的文件文件中(源文件或头文件),原创 2016-09-17 17:03:31 · 787 阅读 · 0 评论 -
【c++】随机化和枚举
c++中随机化使用rand()函数头文件为#include using std::rand;rand()生成0到RAND_MAX的无符号整数。可以缩放其输出范围rand()%6 输出范围就变成0-5要想随机生成器随机化,需要使用srand()函数,srand函数用一个unsigned int值作为参数,对应不同的输入种子,产生不同的随机数序列。为了不用每次都输入种子,可以使用原创 2015-07-07 10:40:48 · 1196 阅读 · 0 评论 -
【Linux C程序设计】创建多线程
#include#include#includevoid* thfn(void* arg){ pid_t pid; pthread_t tid; pid = getpid(); tid = pthread_self(); printf("the new thread :pid is :%u ,tid is %u\n",(unsigned int )pid,(uns原创 2015-06-04 09:47:15 · 362 阅读 · 0 评论 -
【算法】最长回文子串
最长回文子串from https://github.com/julycoding/The-Art-Of-Programming-By-July/blob/master/ebook/zh/01.05.md题目描述给定一个字符串,求它的最长回文子串的长度。方法一:暴力枚举#include "stdafx.h"#include "stdio.h"#inclu原创 2015-06-07 14:47:31 · 392 阅读 · 0 评论 -
【多线程】(二)Interlocked系列函数
参考自 // Thread02.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include volatile long g_nLoginCount;unsigned int __stdcall Fun(void *pPM);const int THREAD_NUM = 50;unsigned int __stdc原创 2014-10-31 20:25:04 · 565 阅读 · 0 评论 -
【多线程】(一)创建多线程
参考 http://blog.csdn.net/morewindows/article/details/7421759原创 2014-10-31 13:44:23 · 541 阅读 · 0 评论 -
【多线程】(五)事件
// Thread003.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "process.h"#include "windows.h"long g_nNum ;const int THREAD_NUM = 10;CRITICAL_SECTION g_csThreadCode;HANDLE g_hThreadEvent;u原创 2014-11-01 16:41:49 · 535 阅读 · 0 评论 -
【多线程】(三)经典多线程问题
参考http://blog.csdn.net/morewindows/article/details/7442333 // Thread003.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "process.h"#include "windows.h"long g_nNum ;const int THREAD_NUM =原创 2014-11-01 14:39:25 · 418 阅读 · 0 评论 -
【数字图像处理】(一)二值化
全局二值法:1.迭代法原创 2014-11-15 16:59:34 · 2684 阅读 · 0 评论 -
堆栈溢出问题 test dword ptr [eax],eax ; probe page错误
这跟局部数组变量定义所分配的最大空间设置大小有关。局部变量的申请空间是存放于栈中,windows里默认栈内存是1M,所以当申请空间大于1M时就会出现溢出错误。所以解决此问题的方法就是扩大栈空间的大小方法为:项目->属性->链接器->系统->堆栈保留大小注:这里填的是字节数如果你想把他扩大为2M的话,1024*1024*2 = 2097152转载 2014-10-23 12:40:25 · 855 阅读 · 0 评论 -
函数声明可写在函数内
int _tmain(int argc, _TCHAR* argv[]){ void add(); add(); return 0;}void add(){ void deley(); deley();}void deley(){}原创 2014-10-23 16:45:04 · 530 阅读 · 0 评论 -
string类转换成char *
将string类转换成char *的常用方法为:string str;const char *str1;str1=str.c_str();这在读取图像文件名时很有用,因为如果用cvLoadImage()的话括号里面的参数只能为const char*型,而一般对文件名的读取都是用string类,这样比较灵活。原创 2014-10-23 13:08:21 · 789 阅读 · 0 评论 -
.Net架构中String类型的转换
在.Net架构中,经常有原创 2014-04-28 19:21:27 · 842 阅读 · 0 评论 -
【多线程】(九)生产者消费者问题
我们来看看生产者消费者问题及读者写者问题。生产者消费者问题是一个著名的线程同步问题,该问题描述如下:有一个生产者在生产产品,这些产品将提供给若干个消费者去消费,为了使生产者和消费者能并发执行,在两者之间设置一个具有多个缓冲区的缓冲池,生产者将它生产的产品放入一个缓冲区中,消费者可以从缓冲区中取走产品进行消费,显然生产者和消费者之间必须保持同步,即不允许消费者到一个空的缓冲区中取产品,也不允许生产者原创 2014-11-08 09:42:13 · 577 阅读 · 0 评论 -
【多线程】(四)关键段CS
关键段CRITICAL_SECTION一共就四个函数,使用很是方便。下面是这四个函数的原型和使用说明。 函数功能:初始化函数原型:voidInitializeCriticalSection(LPCRITICAL_SECTIONlpCriticalSection);函数说明:定义关键段变量后必须先初始化。 函数功能:销毁函数原型:voidDeleteCri原创 2014-11-01 15:26:11 · 464 阅读 · 0 评论 -
【多线程】(七)互斥量Mutex
参考自 http://blog.csdn.net/morewindows/article/details/7470936互斥量也是一个内核对象,它用来确保一个线程独占一个资源的访问。互斥量与关键段的行为非常相似,并且互斥量可以用于不同进程中的线程互斥访问资源。使用互斥量Mutex主要将用到四个函数。下面是这些函数的原型和使用说明。第一个CreateMutex函数功能:创建互斥量原创 2014-11-02 15:57:23 · 390 阅读 · 0 评论 -
【Linux C 程序设计】 (二)Linux进程操作
NULL常量的定义是:#define NULL原创 2014-11-24 21:47:29 · 474 阅读 · 0 评论