C++
文章平均质量分 54
zhoucy163
这个作者很懒,什么都没留下…
展开
-
vs2010 opencv下编译一个小程序出现 应用程序无法启动0xc000007d
最后的生成的执行文件删除,重新编译即可原创 2012-10-05 16:35:33 · 1612 阅读 · 1 评论 -
2012-9-25
今天看到C++中关于二维数组的分配问题。 1,自己的想法 int *a[N]; //N表示行数已知 for(int i=0;i a[i]=new int [m]; //m表示后来又给的列数 2,另外开辟的方法 int * a[N]; //N 表示给得列数原创 2012-09-25 20:05:02 · 1039 阅读 · 0 评论 -
2012-04-29 18:16 【转】C++动态开辟二维数组
动态分配二维数组的若干方法 动态分配二维数组,方法很多,在这里我说一下我想到的。针对二维数组两 个维的不同,可用不同的方法处理。 一、两维都固定: 这种是最简单,如下: // 有点困惑的方法: int (*a)[M][N]; // M、N 为常量 a = new int[1][10][20]; // 为什么要这样呢? delete[] a;转载 2012-09-25 21:07:44 · 854 阅读 · 0 评论 -
C++ 获取文件夹下的所有文件名
忘了在哪儿看的了,用了好几个月了,再写到自己博客里吧,想不起来怎么用的时候方便查找。[cpp] view plaincopychar * filePath = "D:\\sample"; vector files; ////获取该路径下的所有文件 getFiles(filePath, files ); char转载 2012-12-24 20:17:44 · 522 阅读 · 0 评论 -
fstream
文件输入和输出如果一个用户希望把一个文件连接到程序上,以便用来输入或输出,则必须包含fstream头文件(它又包含了iostream头文件):#include为了打开一个仅被用于输出的文件,我们可以定义一个ofstream(输出文件流)类对象。例如:ofstream outfile( "copy.out", ios_base::out );传递给ofstream构造函数的实参分转载 2012-12-27 19:02:14 · 1143 阅读 · 0 评论 -
boost::format
所需头文件:#include 示例代码:#include #include #include using namespace std;int _tmain(int argc, _TCHAR* argv[]){ // 使用%序号%的方式给出指示符, 后面用%连接对应的数据。 cout "writing %1%, x=%2% : %3%-th try") %转载 2012-12-27 20:15:26 · 510 阅读 · 0 评论 -
C++标准转换运算符reinterpret_cast
reinterpret_cast (expression)reinterpret_cast运算符是用来处理无关类型之间的转换;它会产生一个新的值,这个值会有与原始参数(expressoin)有完全相同的比特位。什么是无关类型?我没有弄清楚,没有找到好的文档来说明类型之间到底都有些什么关系(除了类的继承以外)。后半句倒是看出了reinterpret_cast的字面意思:重新解释(类转载 2012-12-27 18:57:04 · 405 阅读 · 0 评论 -
C++中对文本的读写
#include#include#include using namespace std;int main(){string s1="test",s2="mskdkndk",s3="bdbdhbdhb";string out=s1+"\t"+s2+"\t"+s3;fstream fout;fout.open("yyy",ios::out);fout原创 2012-12-27 21:10:37 · 399 阅读 · 0 评论 -
stringstream
【本文来自】http://www.builder.com.cn/2003/0304/83250.shtmlhttp://www.cppblog.com/alantop/archive/2007/07/10/27823.html使用stringstream对象简化类型转换C++标准库中的提供了比ANSI C的更高级的一些功能,即单纯性、类型安全和可扩展性。在本文中,我将展示怎样使用这些库转载 2012-12-27 21:36:19 · 400 阅读 · 0 评论 -
boost/lexical_cast.hpp的简单使用方法
1、字符串->数值 C++代码#include #include int main() { using boost::lexical_cast; int a = lexical_castint>("123"); double b = lexical_castdouble>("123.12");转载 2012-12-31 09:06:59 · 946 阅读 · 0 评论 -
C++流实现内幕---由boost::lexical_cast引发的一个问题
中午同事碰见一个关于使用boost::lexical_cast产生异常的问题,关键代码如下string str(8,'/0');strncpy(&str.at(0),"1234567",7);cout (str) 结果运行的时候发生如下异常terminate called after throwing an instance of 'boost::bad_l转载 2012-12-31 09:52:05 · 831 阅读 · 0 评论 -
转载]使用C++的fstream读取有结构的字符串和数值混排的文本文件
因为要经常接触字符串和数值混排的数据文本文件,所以,如何有效的读取这类文件成了我头痛的事,不过今日学习了日志[1],找到的解决方法,编程读写实例如下。要读取的目标文件dat.txt内容如下:zzz 8 10.0 2.5 2.55llz 10 20.2 3.9 4.96读写方法编程如下:#include #include using namespace s转载 2012-12-31 20:58:49 · 932 阅读 · 0 评论 -
substr
string str;str.substr(loc,n);取str的从loc开始的n个元素,其中loc是从0开始的。原创 2013-01-02 09:23:25 · 447 阅读 · 0 评论 -
使用std::string::find() 和 std::string::npos需要注意的地方
int pos = str.find("\t");if (pos == string::npos)上述代码中,pos 的类型被定义为 int,这是错误的,即使定义为 unsigned int 也是错的,它必须定义为 string::size_type。c++中 npos 是这样定义的:static const size_type npos = -1;转载 2013-01-02 12:52:27 · 1175 阅读 · 0 评论 -
opencv相关
配置opencv vs2010 win7 64位64位系统的配置全部是按照32位的来,win7下做测试的时候路径最好是写全并且“\”全部换成‘\\’原创 2013-03-06 09:46:13 · 658 阅读 · 0 评论 -
C++ template
1. 模板的概念。我们已经学过重载(Overloading),对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同。正确的调用重载函数。例如,为求两个数的最大值,我们定义MAX()函数需要对不同的数据类型分别定义不同重载(Overload)版本。//函数1.int max(int x,int y);{return(x>y)?x:y ;}//函数2.float转载 2013-03-06 10:46:44 · 616 阅读 · 0 评论 -
C++ stringstream介绍,使用方法与例子
From: http://www.usidcbbs.com/read-htm-tid-1898.htmlC++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含sstream.h头文件。 istringstream类用于执行C++风格的串流的输入操作。 ostringstream类用于执行C风格转载 2013-03-08 09:45:59 · 1077 阅读 · 0 评论 -
ofstream和ifstream详细用法
ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间;在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符:1、插入器( 向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout2、析取器(>>)转载 2013-03-07 21:27:55 · 671 阅读 · 0 评论 -
atoi
C语言库函数名: atoi功 能: 把字符串转换成整型数。名字来源:ASCII to integer 的缩写。原型: int atoi(const char *nptr);函数说明: 参数nptr字符串,如果第一个非空格字符存在或者不是数字也不是正负号则返回零,否则开始做类型转换,之后检测到非数字(包括结束符 \0) 字符时停止转换,返回整型数。头文件: #转载 2013-03-08 10:17:05 · 756 阅读 · 0 评论 -
OpenCV resize()
// Load images in the C++ formatcv::Mat img = cv::imread("something.jpg");cv::Mat src = cv::imread("src.jpg");// Resize src to img sizecv::resize(src, src, img.size());转载 2013-03-08 18:52:06 · 1182 阅读 · 0 评论 -
【OpenCV】访问Mat图像中每个像素的值
今天百度搜资料还搜到了自己的。。。《访问图像中每个像素的值》,这是之前写的了,用的也是2.0的风格IplImage*格式,不太适用后来Mat的格式,特此重写一篇。以下例子源自《The OpenCV Tutorials --Release 2.4.2》2.2 How to scan images, lookup tables and time measurement with OpenCV转载 2013-03-28 18:15:52 · 778 阅读 · 0 评论 -
详细解说 STL 排序(Sort)
详细解说 STL 排序(Sort) 作者Winter详细解说 STL 排序(Sort)0 前言: STL,为什么你必须掌握1 STL提供的Sort 算法1.1 所有sort算法介绍1.2 sort 中的比较函数1.3 sort 的稳定性1.4 全排序1.5 局部排序1.6 nth_element 指定元素排序1.7 partition 和转载 2013-03-28 21:53:31 · 602 阅读 · 0 评论 -
我的OpenCV学习笔记(12):VideoCapture类
这次通过一个读取视频的综合例子来介绍VideoCapture类的一些基本操作:[cpp] view plaincopy#include #include #include #include using namespace std; using namespace cv; int main() { //打开视频文件:其实就是建立一个转载 2013-03-29 10:30:01 · 969 阅读 · 0 评论 -
C++二维动态数组的创建与删除
C++中用new动态创建二维数组的格式一般是这样:TYPE (*p)[N] = new TYPE [][N];其中,TYPE是某种类型,N是二维数组的列数。采用这种格式,列数必须指出,而行数无需指定。在这里,p的类型是TYPE*[N],即是指向一个有N列元素数组的指针。还有一种方法,可以不指定数组的列数:int **p;p = newint*[10]; /转载 2013-03-28 21:00:40 · 1009 阅读 · 0 评论 -
C++类模板的三种特化
说起C++的模板及模板特化, 相信很多人都很熟悉 ,但是说到模板特化的几种类型,相信了解的人就不是很多。我这里归纳了针对一个模板参数的类模板特化的几种类型, 一是特化为绝对类型; 二是特化为引用,指针类型;三是特化为另外一个类模板。 这里用一个简单的例子来说明这三种情况:// general versiontemplateclass T>class Compare{pu转载 2013-03-29 10:11:58 · 695 阅读 · 0 评论 -
深入讨论C++的enum
enum的秘密:enum是“用户自定义类型” 呵呵,enum在实际中应用比较少,所以你会忽略它。但是,在这里,我告诉你,enum 和 struct、class一样,都是用户自定义类型。 对呀!enum是用户自定义类型,他有数据成员,还有成员函数!For example: enum e{a=1 , b=2 , c=4};那么: 001: enum转载 2013-03-30 21:41:46 · 683 阅读 · 0 评论 -
Random generator and text with OpenCV¶
GoalsIn this tutorial you will learn how to:Use the Random Number generator class (RNG) and how to get a random number from a uniform distribution.Display text on an OpenCV window by using the原创 2013-03-30 09:41:56 · 999 阅读 · 0 评论 -
新手入门:C/C++中枚举类型(enum)
如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型。之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来。 举个例子来说明一吧,为了让大家更明白一点,比如一个铅笔盒中有一支笔,但在没有打开之前你并不知道它是什么笔,可能是铅笔也可能是钢笔,这里有两种可能,那么你就可以定义一个枚举类型来表示它!enum box{pencil,pen};//这里你转载 2013-03-30 22:05:08 · 651 阅读 · 0 评论 -
Boost库之program_options的使用
我们在编写程序时,有时需要解析命令行参数,比如小蜜蜂调用聊天历史记录程序,监视器调用日志管理程序等。遗憾的是,C++标准库并没有提供解析命令行参数的功能,我们必须自己来完成解析工作。如果命令行参数比较复杂,要正确地解析可能并不是一件容易的事情。即使解析正确了,代码也不一定具有通用性。那么,有没有一个封装好的功能强大而且简单易用的命令行解析类呢?答案是Boost库的program_options。转载 2013-03-31 15:48:59 · 1351 阅读 · 0 评论 -
fscanf rewind
/* fscanf example */#include int main (){ char str [80]; float f; FILE * pFile; pFile = fopen ("myfile.txt","w+"); fprintf (pFile, "%f %s", 3.1416, "PI"); rewind (pFile); fscanf (转载 2013-03-31 16:16:42 · 816 阅读 · 0 评论 -
Linux多线程编程(不限Linux)
——本文一个例子展开,介绍Linux下面线程的操作、多线程的同步和互斥。前言线程?为什么有了进程还需要线程呢,他们有什么区别?使用线程有什么优势呢?还有多线程编程的一些细节问题,如线程之间怎样同步、互斥,这些东西将在本文中介绍。我在某QQ群里见到这样一道面试题:是否熟悉POSIX多线程编程技术?如熟悉,编写程序完成如下功能:1)有一int型全局变量g_Flag初始值为0;2转载 2013-03-31 22:12:16 · 616 阅读 · 0 评论 -
bool类型的变量不能输出
#include #include #include using namespace std;using namespace boost::filesystem;int main() { boost::filesystem::path path("/usr/local/include"); // random pathname bool result = boost::fil原创 2013-03-31 16:27:26 · 1116 阅读 · 0 评论 -
C++基础:public,private,protected作用
公有成员public member 在程序的任何地方都可以被访问实行信息隐藏的类将其public 成员限制在成员函数上这种函数定义了可以被一般程序用来操纵该类类型对象的操作私有成员private member 只能被成员函数和类的友元访问实行信息隐藏的类把其数据成员声明为private。 被保护成员protected member 对派生类derived class 就像 public转载 2013-04-02 10:01:00 · 698 阅读 · 0 评论 -
void * memset ( void * ptr, int value, size_t num );
void * memset ( void * ptr, int value, size_t num ); Sets the first num bytes of the block of memory pointed by ptr to the specifiedvalue (interpreted as an unsigned char)./* memse转载 2013-04-02 10:20:22 · 974 阅读 · 0 评论 -
0, \0, NULL的区别
这个都知道在哪里用,但是道理不清楚。然后google 了一下,一个比较好的解释虽然是英文,但是很经典。1.0 is an integer constant2.'\0' is a character constant3.NULL is a macro(宏) defined in several standard headers(标准头文件)4.nul is the nam转载 2013-04-02 10:23:33 · 689 阅读 · 0 评论 -
fork函数
fork函数 在linux中,只有一个函数可以创建子进程:fork。 #include #include pid_t fork(void); 由f o r k创建的新进程被称为子进程( child process)。该函数被调用一次,但返回两次。两次返回的区别是子进程的返回值是0,而父进程的返回值则是新子进程的进程I转载 2013-04-01 20:39:45 · 551 阅读 · 0 评论 -
boost::asio::ip::tcp实现网络通信的小例子(转载)
服务端:Boost.Asio是一个跨平台的网络及底层IO的C++编程库,它使用现代C++手法实现了统一的异步调用模型。头文件#include 名空间using namespace boost::asio; ASIO库能够使用TCP、UDP、ICMP、串口来发送/接收数据,下面先介绍TCP协议的读写操作对于读写方式,ASI转载 2013-04-01 22:42:51 · 705 阅读 · 0 评论 -
C++ map的基本操作和使用
来源:(http://blog.sina.com.cn/s/blog_61533c9b0100fa7w.html) - C++ map的基本操作和使用_Live_新浪博客 Map是c++的一个标准容器,她提供了很好一对一的关系,在一些程序中建立一个map可以起到事半功倍的效果,总结了一些map基本简单实用的操作!1. map最基本的构造函数; mapmapstring;转载 2013-04-03 13:59:35 · 565 阅读 · 0 评论 -
Boost常用库用法
1、#include字符串转换为数字: boost::lexical_cast("123");数字转换为字符串: boost::lexical_cast(123);2、#include判断是否为目录:boost::filesystem::is_directory("/home/test");3、#include判断是否以某字符串:boost::algor转载 2013-04-03 13:55:26 · 844 阅读 · 0 评论 -
c++按位操作符
顾名思义,按位运算符允许按照位来操作整型变量。可以把按位运算符应用于任意signed和unsigned整型,包括char类型。但是,它们通常应用于不带符号的整型。这些运算符的一个常见应用是在整型变量中使用单个的位存储信息。例如标记,它用于描述二进制状态指示符。可以使用一个位来描述有两个状态的值:开或关、男或女,真或假。也可以使用按位运算符处理存储在一个变量中的几个信息项。例如,颜色值常常记转载 2013-04-03 16:02:42 · 700 阅读 · 0 评论