
C/C++
文章平均质量分 69
beyondlpf
这个作者很懒,什么都没留下…
展开
-
Google protobuf的安装及使用
最近应为工作的需要,合作的部门提供了protobuf的接口,总结了一下使用的过程和方法如下: 下载protobuf-2.3.0: http://protobuf.googlecode.com/files/protobuf-2.3.0.zip 安装: unzip protobuf-2.3.0.zip cd proto转载 2013-01-23 14:39:44 · 2734 阅读 · 0 评论 -
C++ 读写文件
C++ 读写文件fstream提供了三个类,用来实现c++对文件的操作。(文件的创建、读、写)。ifstream -- 从已有的文件读ofstream -- 向文件写内容fstream - 打开文件供读写文件打开模式:ios::in 读ios::out 写ios::app转载 2012-03-21 16:01:25 · 762 阅读 · 0 评论 -
警告:‘xxxx’ 将随后被初始化
关于初始化列表中成员变量初始化顺序报的警告问题2010-08-19 11:34关于编译报警告。本次是接手一个新手的代码,总共不到1K行的代码。两个类。编译的时候报的警告,本来也不打算管理这个事情的。要求也不会有那么严格。但上午看完代码后,觉得毕竟是新手写的代码,还是有很多需要修改的地方。当下没事,首先把这个警告处理了。具体编译报的警告如下:ExtractTa转载 2012-04-06 16:40:14 · 3889 阅读 · 0 评论 -
JSONCPP安装
1.软件准备JsonCpphttp://sourceforge.net/projects/jsoncpp/files/sconshttp://sourceforge.net/projects/ ... /scons-2.1.0.tar.gz说明:scons需要python,在linux中自己携带了python,放心使用。2.安装目录为了统一安装目转载 2012-03-18 17:31:18 · 2211 阅读 · 0 评论 -
C/C++获取当前系统时间
C/C++获取当前系统时间个人觉得第二种还是比较实用的,而且也是最常用的~不过当计算算法耗时的时候,不要忘记second,不能只要用Milliseconds来减,不然后出现负值,若是算法耗时太长就得用minutes啦。再不然,就hours……//方案— 优点:仅使用C标准库;缺点:只能精确到秒级#include #include int转载 2012-03-15 17:50:17 · 668 阅读 · 0 评论 -
Makefile 例子
把用到的cpp文件全部以.o的形式加到OBJS里 然后make clean;make; 就可以编译了CC = gccCXX = g++RANLIB = ranlibAR = arCFLAGS = -g -O -Wall -fPIC INCLUDE = LIB = -L../comm/ -lcomm OUTPUT = m原创 2012-03-15 18:00:06 · 586 阅读 · 0 评论 -
scanf 无法读入空格
用scanf不是不显示空格,而是用scanf接收字符串的话,在串首遇到空格的话,跳过,继续寻找下一个非空格字符,在串中遇到空格时,结束字符串的输入。所以如果用户输入" abcd efg"的话,scanf取得的字符串为"abcd"。而gets取得字符串时,是在遇到EOF(串尾)时停止,所以不存在这个问题。转载 2012-03-15 17:49:36 · 5797 阅读 · 0 评论 -
C++中Static作用和使用方法
C++中Static作用和使用方法2008-09-12 10:221、什么是static? static 是C++中很常用的修饰符,它被用来控制变量的存储方式和可见性。 2、为什么要引入static? 函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,大家知道,函数在栈上分配的空间在此函数执行结束时会释转载 2012-03-30 17:54:40 · 571 阅读 · 0 评论 -
undefined reference to `curl_easy_init'
mmxcq@mmxcq-laptop:~/c/curl$ gcc -o q q.c /tmp/ccyOh5HP.o: In function `main':q.c:(.text+0x103): undefined reference to `curl_easy_init'q.c:(.text+0x148): undefined reference to `curl_easy_setop转载 2012-03-30 17:49:34 · 17905 阅读 · 2 评论 -
c++ LibCurl编程
LibCurl编程2.1 LibCurl编程流程在基于LibCurl的程序里,主要采用callback function(回 调函数)的形式完成传输任务,用户在启动传输前设置好各类参数和回调函数,当满足条件时libcurl将调用用户的回调函数实现特定功能。下面是利用libcurl完成传输任务的流程:1. 调用curl_global_init()初始化libcurl2.转载 2012-03-30 17:48:26 · 1172 阅读 · 0 评论 -
undefined reference to *** —— 类成员
undefined reference to *** —— 类成员2009-05-09 14:13undefined reference to ***这个链接错误的花样总是层出不穷(more),这一次是找不到类中的成员。例子1:undefined reference to VS. 类静态成员变量在文件hAB.h中声明了类A与类B:class A转载 2012-03-30 17:50:22 · 3096 阅读 · 0 评论 -
c++ vector遍历删除元素 出错的问题
使用iterator 遍历时,删除其中一个出了问题,结果是删除了一个以后 不能再用自增了c++ vector遍历删除元素一直对vector的删除操作不太熟悉,现整理下。其中前三部分先补充一些相关知识,然后第四部分给出示例代码。一、关于Vector的earse方法iterator erase ( iterator position );iterator转载 2012-03-14 15:16:19 · 8167 阅读 · 0 评论 -
C++ STL遍历map的时候如何删除其中的element
我们通过map的erase(iterator it)方法删除元素的时候,如果此时erase处于遍历map的代码中,那么调用erase就需要小心一些。因为erase会导致输入参数iterator变的无效,从而影响后续的it++遍历map的逻辑。简单做法是,先将要删除的it保存下来,然后将用于遍历map的it指向下一个位置,然后删除掉保存下来的it。如下面代码所示:#include转载 2012-03-14 15:14:37 · 1376 阅读 · 0 评论 -
google protocol-buffers c++ repeated 链表结构释放内存空间
在使用 Repeated 类型 链表结构 使用add_foo() 以后,要注意clear_foo() 释放内存空间,最好的办法是在该链表类的析构方法中执行 this->clear_foo();Repeated Embedded Message FieldsGiven the message type:message Bar {}For this field def原创 2012-04-13 18:43:15 · 5374 阅读 · 0 评论 -
cout的格式化输出
cout的格式化输出 (2008-04-18 11:49:06)转载▼标签: 杂谈分类: 技术 控制符是在头文件iomanip.h中定义的对象。 使用前必须把iomanip.h包含进来 1. I/O的书写格式 I/0流是输入或输出的一系列字节,当程序需要在屏幕上显示输出时,可以使用插入操 作符转载 2012-05-03 16:37:42 · 1282 阅读 · 0 评论 -
stringstream clear() 清除内存的误区
stringstream是个好东西,网上有不少文章,讨论如何用它实现各种数据类型的转换(比如把double或int转换为string类型)。但如果stringstream使用不当,当心内存出问题(我就吃过亏^_^)。试试下面的代码,运行程序前打开任务管理器,过不了几十秒,所有的内存都将被耗尽!#include #include #include using namespace转载 2012-08-14 15:50:58 · 1716 阅读 · 0 评论 -
c++ fstream open 失败原因
今天比较诡异,用 fstream open 一直失败,最后查出来是文件路径最后多写了一个空格 。。。原创 2012-07-12 17:48:01 · 7851 阅读 · 0 评论 -
snprintf、stringstream、strstream的对比分析
这两天在看《C++编程思想》IO部分,里面有讲到strstream的使用,但在g++里却编译不通。上网一查才发现strstream已经被stringstream替代了,后者在类型转换中有巧妙的应用。但这二者差别是很大的。对sprintf问题的奥威尔式的严格考察,最终以我们对snprintf、std::stringstream、std::strstream以及非标准但极度优雅的boost::转载 2012-06-20 18:35:51 · 9604 阅读 · 0 评论 -
operator C++ 操作符重载
operator是C++的关键字,它和运算符一起使用,表示一个运算符函数,理解时应将operator=整体上视为一个函数名。 这是C++扩展运算符功能的方法,虽然样子古怪,但也可以理解:一方面要使运算符的使用方法与其原来一致,另一方面扩展其功能只能通过函数的方式(c++中,“功能”都是由函数实现的)。 一、为什么使用操作符重载?对于系统的所有操作符,一般情况下,只支持基本数据转载 2012-06-14 16:44:26 · 665 阅读 · 0 评论 -
ASP 常用MD5加密程序(16位、32位、小写、大写)
以下是常用的MD5加密程序,建议保存为md5.asp;然后在需要使用加密的文件中使用:的方法将该文件载入。使用方法:格式:变量 = md5(参数一,参数二,参数三)说明:参数一:要加密的内容参数二:加密位数,16位或32位参数三:大小写设置,0小写,1大写举例:泡泡ASP相关代码:AA = "admin"Respons转载 2012-05-24 16:54:47 · 6115 阅读 · 0 评论 -
防止程序启动两次的方法CreateMutex()
在工程文件中, WinMain函数里加上以下代码(此代码在BCB6.0下运行):HANDLE hMutex = CreateMutex(NULL, false, "Process"); if (GetLastError() == ERROR_ALREADY_EXISTS) { CloseHandle(hMutex);转载 2012-05-11 16:19:20 · 680 阅读 · 0 评论 -
单向链表O(1)删除中间元素
真删除肯定不行,不过可以用假删除,就是把要删除节点的值用要删除节点的下一个节点值覆盖,然后删除下一个节点。 p-> value=p-> next-> value; temp=p-> next;; p-> next=temp-> next; free(temp);转载 2012-05-11 16:17:47 · 701 阅读 · 0 评论 -
如何监测内存泄漏(引用自网络)
如何监测内存泄漏(引用自网络)首先,我们检查了代码,发现所有的代码都是用new来分配内存,用delete来释放内存。那么,我们能够用一个全程替换,来替换掉所有的new和delete操作符吗?不能。因为代码的规模太大了,那样做除了浪费时间没有别的任何好处。好在我们的源代码是用C++来写成的,所以,这意味着没有必要替换掉所有的new和delete,而只用重载这两个操作符。对了,值用重载这两个操作符转载 2012-05-11 16:22:07 · 535 阅读 · 0 评论 -
常用排序算法以及时间复杂度
常用排序算法以及时间复杂度(此算法数组都是从1算起)折半插入排序希尔排序快速排序二叉树排序冒泡排序选择排序 堆排序 #include #include #include #include转载 2012-05-11 16:15:23 · 2444 阅读 · 0 评论 -
B树、B-树、B+树、B*树
B树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如: B树的搜索,从根结点开始,如果查询的关键字与结点的关转载 2012-05-11 16:08:55 · 719 阅读 · 0 评论 -
c++ system wait 返回值
表8-1 检查w a i t和w a i t p i d所返回的终止状态的宏宏 说明W I F E X I T E D(s t a t u s) 若为正常终止子进程返回的状态,则为真。对于这种情况可执行W E X I T S T A T U S(s转载 2012-04-23 15:59:08 · 2258 阅读 · 0 评论 -
Linux popen函数的使用总结
函数原型: #include “stdio.h” FILE *popen( const char* command, const char* mode ) 参数说明: command: 是一个指向以 NULL 结束的 shell 命令字符串的指针。这行命令将被传到 bin/sh 并使用 -c 标志,shell 将执行这个命令。 mode: 只能是读或者写中的一种,得到转载 2012-04-20 17:37:07 · 2257 阅读 · 0 评论 -
libcurl库介绍
原文:http://www.cppprog.com/2009/1209/185.htmllibcurl库是一个实现了各种客户端协议的网络编程库。目前它支持12种以上的协议,包括 FTP、HTTP、Telnet以及其他安全变体。如果您有 10 年以上的脚本语言经验,您就会注意到它们的标记有很大的变化。Python、Ruby、Perl 等这些脚本语言不仅包含套接字层(C 或 C++ 中转载 2012-03-27 16:18:38 · 1226 阅读 · 0 评论 -
linux下获取系统时间
1.可以用 localtime 函数分别获取年月日时分秒的数值。 Linux下获得系统时间的C语言的实现方法: 1. 可以用 localtime 函数分别获取年月日时分秒的数值。 #include //C语言的头文件 #include //C语言的I/O void main() { time_t now;转载 2012-02-22 11:15:14 · 537 阅读 · 0 评论 -
宏定义中的#,##操作符和... and _ _VA_ARGS_ _
1.#假如希望在字符串中包含宏参数,ANSI C允许这样作,在类函数宏的替换部分,#符号用作一个预处理运算符,它可以把语言符号转化程字符串。例如,如果x是一个宏参量,那么#x可以把参数名转化成相应的字符串。该过程称为字符串化(stringizing).#incldue #define PSQR(x) printf("the square of" #x "is %d.\n",(x)*(x转载 2011-12-27 15:33:22 · 580 阅读 · 0 评论 -
什么是ANSI,ANSI编码,ANSI C
什么是ANSI,ANSI编码,ANSI CANSI全称是:American National Standard Institite中文译名: 美国国家标准协会 美国国家标准协会,由公司、政府和其他成员组成的自愿组织。它们协商与标准有关的活动,审议美国国家标准,并努力提高美国在国际标准化组织中的地位。此外,ANSI使有关通信和网络方面的国际标准和美国标准转载 2011-11-17 18:01:56 · 6174 阅读 · 0 评论 -
gcc和g++
gcc和g++都是GNU(组织)的一个编译器。 误区一:gcc只能编译c代码,g++只能编译c++代码 两者都可以,但是请注意: 1.后缀为.c的,gcc把它当作是C程序,而g++当作是c++程序;后缀为.cpp的,两者都会认为是c++程序,注意,虽然c++是c的转载 2011-08-02 11:07:52 · 540 阅读 · 0 评论 -
跟我一起写 Makefile
[精华] 跟我一起写 Makefile 陈皓概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我转载 2011-08-02 10:42:43 · 936 阅读 · 0 评论 -
crosses initialization of “XXX”
crosses initialization of “XXX”gotocrossesinitializationof“xxx”it 分类: 编程这个问题是由于goto引起的;goto是已经名为不提倡的语句,但是有时它还是很有用的。代码转载 2011-08-02 10:14:08 · 8666 阅读 · 0 评论 -
String 类的成员函数
<br /> string的交换:<br /> void swap(string &s2); //交换当前字符串与s2的值<br /><br /> string类的查找函数:<br /> int find(char c, int pos = 0) const;//从pos开始查找字符c在当前字符串的位置<br /> int find(const char *s, int pos = 0) const;//从pos开始查找字符串s在当前串中的位置<br /> int find(const原创 2011-06-02 20:20:00 · 719 阅读 · 0 评论 -
typedef 函数指针的用法
typedef 函数指针的用法 在网上搜索函数指针,看到一个例子。开始没看懂,想放弃,可是转念一想,这个用法迟早要弄懂的,现在多花点时间看懂它,好过以后碰到了要再花一倍时间来弄懂它。其实很多时候都是这样,如果每次到难一点的内容,总想着下次我再来解决它,那就永远也学不到东西。后面那个例子加了注释,是我对这种用法的理解,希望对新手有所帮助。进入正文:代码简化, 促进跨平台开发的目的. typedef 行为有点像 #define 宏,用其实际类型替代同义字。 不同点:typedef 在编译时被解释,因此让编译器来转载 2011-06-02 20:15:00 · 575 阅读 · 0 评论 -
CTime/COleDateTime::Format方法的使用
CTime/COleDateTime::Format方法的使用CTime ct = CTime::GetCurrentTime();CString str = ct.Format("%Y-%m_%d %H-%M-%S");输出为:str="2006-04-23 15-21-30"%a <br />Abbreviated weekday name <br />%A <br />Full weekday name <br />%b <br />Abbreviated month name <br />%B <b转载 2011-06-02 20:27:00 · 1023 阅读 · 0 评论 -
C++ DES加密算法
#ifndef __DES_H #define __DES_H class DES{ public: // Encrypt/decrypt the data in "data", according to the "key". // Caller is responsible for confirming the buffer size of "data" // points to is 8*"blocks" bytes. // The data encrypted/decr转载 2011-06-02 20:28:00 · 2128 阅读 · 0 评论 -
CList的find方法需要重载
<br />如果用自定义的结构构造的CList<br />则须在自定义的结构(或者是类)中重载 BOOL operator == (const MyClass& myclass) const<br />否则 使用Clist的find 函数的时候会出现如下错误:<br />c:/program files/microsoft visual studio/vc98/mfc/include/afxtempl.h(122) : error C2678: binary '==' : no operator defin转载 2011-06-02 20:25:00 · 2099 阅读 · 0 评论 -
返回当前路径
<br />函数原型:<br /> DWORD GetModuleFileName(<br /> HMODULE hModule,<br /> LPTSTR lpFilename,<br /> DWORD nSize<br /> );<br /> 函数参数说明:<br /> hModule HMODULE 装载一个程序实例的句柄。如果该参数为NULL,该函数返回该当前应用程序全路径。<br /> lpFileName LPTSTR 是你存放返回的名字的内存块的指针,是一个输出参数<br />转载 2011-06-02 20:24:00 · 621 阅读 · 0 评论