![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
文章平均质量分 70
落冰翼
这个作者很懒,什么都没留下…
展开
-
libcurl抓取网页并保存cookie
在Vi编辑器下打开getHtml.cpp用g++ getHtml.cpp -lcurl执行./a.out就得到了网页和cookie信息原创 2014-06-13 09:52:59 · 2951 阅读 · 0 评论 -
tinyxml的使用
前言TinyXML是一个开源的解析XML的解析库,能够用于C++,能够在Windows或Linux中编译,使用TinyXML进行C++ XML解析,使用简单,容易上手。这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的遍历这棵XML树。 DOM模型即文档对象模型,是将整个文档分成多个元素(如书、章、节、段等),并利用树型结构表示这些元素之间的顺序关系以及转载 2015-05-12 20:53:23 · 327 阅读 · 0 评论 -
常见gcc编译警告整理(开始)
转自: http://blog.csdn.net/tietao/article/details/72449971、warning: no newline at end of file在文件最后一行加上回车键解释:在《Rationale for the C99 standard》一文中,有C99的相关信息:A backslash immediately before a转载 2015-12-02 19:22:32 · 724 阅读 · 0 评论 -
map自定义比较函数
from:http://blog.163.com/wangliang_ru/blog/static/403196872009112155727280/template , class Alloc = alloc> 第一个参数Key是关键字类型第二个参数T是值类型第三个参数Compare是比较函数(仿函数)第四个参数是内存配置对象 Map中的关键字,起码必须有“我们转载 2015-11-25 11:35:40 · 563 阅读 · 0 评论 -
prctl()函数应用
转自:http://blog.csdn.net/fivedoumi/article/details/24407779t prctl(int option,unsigned longarg2,unsigned long arg3,unsigned long arg4,unsigned long arg5)这个系统调用指令是为进程制定而设计的,明确的选择取决于option:PR_G转载 2015-09-23 16:41:06 · 484 阅读 · 0 评论 -
C++四种强制转换
C++的四种强制类型转换,所以C++不是类型安全的。分别为:static_cast , dynamic_cast , const_cast , reinterpret_cast为什么使用C风格的强制转换可以把想要的任何东西转换成合乎心意的类型。那为什么还需要一个新的C++类型的强制转换呢?新类型的强制转换可以提供更好的控制强制转换过程,允许控制各种不同种类的强制转换。C++中风格是stat转载 2015-11-11 15:13:52 · 323 阅读 · 0 评论 -
C++ * a和*&a作为函数的参数时有什么区别
如果你说的是函数的形参,那么void foo(int* ptr);是传值调用,比如你这么调用int a;int* pValue = &a;foo(pValue);这样的情况下,pValue的值是不能被函数foo改变的,也就是pValue肯定是指向a的。但是如果你这么声明void foo(int*& ptr);则是传递引用,那么如果你函数里面void foo(int*& ptr)转载 2015-08-28 13:08:16 · 8440 阅读 · 0 评论 -
string转换和分割
#include #include #include #include using namespace std;templateconst char* to_string(T number){ std::stringstream ss; ss<<number; std::string str; ss>>str; return str.c_str();}templat原创 2015-06-11 15:05:35 · 437 阅读 · 0 评论 -
HashMap实现原理分析
转自:http://blog.csdn.net/vking_wang/article/details/14166593HashMap目录(?)[-]HashMap的数据结构 数组链表哈希表HashMap的存取实现1put2get3null key的存取4确定数组indexhashcode tablelength取模5table初始大小转载 2015-04-13 17:40:56 · 280 阅读 · 0 评论 -
C++内嵌代码使用压缩的方法(compress和uncompress函数)需要有zlib,编译时加-lz
转自:http://blog.csdn.net/Solstice/archive/2003/04/04/2061.aspx以下全文转:使用zlib库里的compress函数与uncompress函数zlib 是通用的压缩库,提供了一套 in-memory 压缩和解压函数,并能检测解压出来的数据的完整性(integrity)。zlib也支持读写 gzip (.gz) 格式的文件。转载 2015-03-24 10:38:22 · 3236 阅读 · 0 评论 -
关于回调函数和this指针探讨
在C里面,经常需要提供一个函数地址,注册到结构里,然后在程序执行到特定阶段时,回调该函数。创建线程,注册线程运行的主函数就是一个典型的例子。这里以简单的回调实例,说明C++中回调函数为成员函数时有关this指针的问题。由于C++对C的继承关系,C++没有自己的线程封装技术,一般而言我们创建线程时,还是用C的回调函数机制。类似的例子也挺多的。在Java等纯粹的面向对象语言,则不一样,不光有自己的独立转载 2015-03-16 16:32:27 · 528 阅读 · 0 评论 -
C++ MD5,SHA1调用
最近在写c++ websocket 通信,sha1算法从网上 转的一份发现待hash字符串长度大于50左右会和网上的hash不一样,随后使用 openssl 库做运算,现在附上两种代码:1. 网上找的算法转自: https://www.cnblogs.com/ytjjyy/archive/2012/05/07/2487141.html#include <iostream>#inclu...原创 2018-03-23 12:01:14 · 6339 阅读 · 0 评论 -
用宏区分操作系统和编译器
转自:http://blog.chinaunix.net/uid-25808509-id-2949305.html编码的时候经常要用到条件编译,每次都到网上去查比较浪费时间,今天总结一下以备后用 编译器GCC#ifdef __GNUC__#if __GNUC__ >= 3 // GCC3.0以上Visual C++#ifdef _转载 2017-06-16 14:18:43 · 1865 阅读 · 0 评论 -
gcc 编译 + 选项
转自:http://blog.csdn.net/princess9/article/details/6567678一般来说要现有项目中的编译选项,设置新的project的编译选项 编译器 就是将“高级语言”翻译为“机器语言(低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compile转载 2016-09-05 20:56:53 · 1738 阅读 · 0 评论 -
字节顺序(byte order)
转自:http://blog.csdn.net/njnu_mjn/article/details/9141231概念字节顺序是指多字节的值在硬件中的存储顺序. 一般分为大端(big-endian)和小端(little-endian).大端: 先存储高字节(Most significant bit), 或者说, 高字节存储在低地址, 低字节存储在高地址.小端: 先转载 2016-09-14 17:58:28 · 7260 阅读 · 0 评论 -
C++使用hash_map时警告
转自:http://www.2cto.com/kf/201304/201711.html在C++中使用hash_map时,警告如下:[html] 。。。。。。。。。。。。。 /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/backward/backward_warning.h:28转载 2016-08-24 15:41:09 · 3513 阅读 · 0 评论 -
C++之tinyXML使用
转自:http://qaohao.iteye.com/blog/496237tinyXML一款很优秀的操作C++类库,文件不大,但方法很丰富,和apache的Dom4j可以披靡啊!习惯了使用java类库的我看到这么丰富的c++类库,很高兴!它使用很简单,只需要拷贝几个文件到你的工程中,没有STL也可以编译运行。 下面我从这几个方面谈谈对tinyXML类库的使用以及理解。转载 2016-04-19 20:04:51 · 326 阅读 · 0 评论 -
C++中重载强制类型转换
转自:http://blog.csdn.net/ljx0305/article/details/4060090C++中重载强制类型转换 例1 在类中直接定义成员函数将Conver类对象强制转换成int型#include using namespace std; class Conver{ public:转载 2016-04-19 16:50:06 · 4090 阅读 · 1 评论 -
C++ explicit的作用
explicit作用:在C++中,explicit关键字用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换。explicit使用注意事项: * explicit 关键字只能用于类内部的构造函数声明上。 * explicit 关键字作用于单个参数的构造函数。 * 在C++中,explicit关键字用来修饰类的构造转载 2016-04-19 16:13:40 · 274 阅读 · 0 评论 -
计算一个无符整数中1Bit的个数(1)
转自:http://blog.chinaunix.net/uid-21275705-id-224360.htmlCount the number of bits that are on in an unsigned integer(计算一个无符整数中1Bit的个数)-- (1)计算一个无符号整数中有多少的Bit为1这是一个经常遇到的经典问题,这里分两个部分讲解和总结,首先对讲解转载 2015-03-31 12:50:10 · 903 阅读 · 0 评论 -
字符过滤拷贝
题目:char a[100],char b[70], 使用c/c++如果最高效的把a中有而b中没有的字符赋给char c[100]思想: 每个字符的值在255内,将字符转换成数值,就是255个数值,然后把对应的下标标记一下说明这个字符存在了, 遍历b打标记****************遍历a看是否打了标记#include using na原创 2015-04-02 15:59:04 · 321 阅读 · 0 评论 -
string、wstring、cstring、 char、 tchar、int、dword转换方法
最近编程一直头痛这集中类型的转化,明知都可以转却总是记不住,不断的上网查来查去,在这里小结一下。以备以后方便使用,当然有些方法可能不是最新的,或者最简单的,但是对于自己已经了解的使用起来应该方便的多:1》string转wstringwstring s2ws(const string& s){ _bstr_t t = s.c_str(); wchar_t* pwchar = (w转载 2014-11-19 18:29:00 · 475 阅读 · 0 评论 -
CreateFile函数详解
转载地址:CreateFile The CreateFile function creates or opens the following objects and returns a handle that can be used to accessthe object: files pipes mailslots communications resou转载 2014-11-12 10:20:49 · 438 阅读 · 0 评论 -
在window下获取电脑的MAC地址
1.Netbios方法2.GetAdapterAddresses原创 2014-09-04 18:13:42 · 430 阅读 · 0 评论 -
c++: size_type与 size_t一些概念
size_type: 由string类类型和vector类类型定义的类型,用以保存任意string对象或vector对象的长度,标准库类型将size_type定义为unsigned类型 string抽象意义是字符串, size()的抽象意义是字符串的尺寸, string::size_type抽象意义是尺寸单位类型 string::size_type它在不同的机器上,长度是转载 2014-08-05 16:17:37 · 582 阅读 · 0 评论 -
CString/string/char *比较详解
关键点:主要用于MFC的编写,而属于STL,两者都是符合标准C++的,但是在非windows平台或者说VC上还是用吧。另外还有一个这是传统C++才有的~(一) 概述string和CString均是字符串模板类,string为标准模板类(STL)定义的字符串类,已经纳入C++标准之中;CString(typedef CStringT> CString)为Visual C++中最常用的转载 2014-08-05 16:58:36 · 339 阅读 · 0 评论 -
string与int的相互转换
C++本身就提供了字符串与整型数之间的互换,那就是利用stringstream。下面是使用方法:核心: 利用C++中的stringstream流。 由于使用过程比较简单就不再赘述,直接给出示例,重要的地方在示例注释中给予说明。 完整示例: #include #include #include //要使用stringstream流应包含此头文件 using na转载 2014-06-17 19:50:32 · 761 阅读 · 0 评论 -
关于c++创建单例类
它有一个指向唯一实例的静态指针m_pInstance,并且是私有的;它有一个公有的函数,可以获取这个唯一的实例,并且在需要的时候创建该实例;它的构造函数是私有的,这样就不能从别处创建该类的实例。大多数时候,这样的实现都不会出现问题。有经验的读者可能会问,m_pInstance指向的空间什么时候释放呢?更严重原创 2014-06-13 20:51:42 · 714 阅读 · 0 评论 -
指针数组与数组指针的区别
指针数组:array of pointers,即用于存储指针的数组,也就是数组元素都是指针数组指针:a pointer to an array,即指向数组的指针还要注意的是他们用法的区别,下面举例说明。int* a[4] 指针数组 表示:数组a中的元素都为int型指针 元素表示:*a[原创 2014-06-13 10:49:08 · 455 阅读 · 0 评论 -
C++学习之map类型
1。目录map简介map的功能map的定义在map中添加元素查找并获取map中的元素从map中删除元素map对象的迭代遍历 2。map简介map是一类关联式容器,它是模板类。关联的本质在于元素的值与某个特定的键相关联,而并非通过元素在数组中的位置类获取。它的特点是增加和删除节点对迭代器的影响很小,除了操作节点,对其他的节点都没有什么影响。对于迭代器来说,不可以修改键值,只能转载 2014-12-18 15:24:24 · 339 阅读 · 0 评论 -
32位和64位系统区别及int字节数
一)64位系统和32位有什么区别? 1、64bit CPU拥有更大的寻址能力,最大支持到16GB内存,而32bit只支持4G内存 2、64位CPU一次可提取64位数据,比32位提高了一倍,理论上性能会提升1倍。但这是建立在64bit操作系统,64bit软件的基础上的。 什么是64位处理器? 之所以叫做“64位处理器”,是因为电脑内部都是实行2进制运算,处理器(CPU)一次处理数转载 2014-12-26 15:24:23 · 319 阅读 · 0 评论 -
堆排序,C++模板编程
链接:http://www.cnblogs.com/hanxi/archive/2012/10/12/2721540.html理论来自:简明现代魔法在程序设计相关领域,堆(Heap)的概念主要涉及到两个方面:一种数据结构,逻辑上是一颗完全二叉树,存储上是一个数组对象(二叉堆)。 垃圾收集存储区,是软件系统可以编程的内存区域。本文所说的堆,指的是前者。堆排序的时间复杂度是O(转载 2015-03-17 17:52:02 · 1108 阅读 · 0 评论 -
strcpy函数的实现
转载请注明出处http://www.cnblogs.com/chenyg32/已知strcpy函数的原型是:char *strcpy(char *dst, const char *src);实现strcpy函数解释为什么要返回char *假如考虑dst和src内存重叠的情况,strcpy该怎么实现 1.strcpy的实现代码char * strcpy(c转载 2015-03-27 11:40:11 · 241 阅读 · 0 评论 -
C++字符串类string简析
字符串操作是一个不小的主题,在标准C++中,string字符串类成为一个标准,之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下的需要. 下面我们首先从一些示例开始学习下string类的使用.1)#include string>#inc转载 2014-11-20 17:17:44 · 368 阅读 · 0 评论 -
atic_cast<>()和reinterpret_cast<>()
1.const_cast。你知道,一个int*是可以直接赋给一个const int*的,但是一个const int*是不可以直接赋给一个int*的。这就需要:int* pi=const_castpci;他还可以把volatile和对齐特性(alignment)去掉。2.reinterpret_cast就是:把整型(广义的)转换为指针,把指针转换为整型(广义的),把指针转换为另一转载 2015-03-03 18:04:43 · 459 阅读 · 0 评论 -
C++ map的基本操作和用法
1、map简介map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。对于迭代器来说,可以修改实值,而不能修改key。2、map的功能 自动建立Key - value的对应。key 和 value可以是任意你需要的类型。 根据key值快速查找记录,查找的复杂度基本是Log(N),如果有1000个记录,最多查找10次,1,00转载 2014-12-18 15:23:41 · 313 阅读 · 0 评论 -
char** argv与char *argv[]区别
指针是个地址。char *a: a的值包含字符型数据,取消对a的引用(*a)得到一个字符,不取消引用得到一个字符串,printf("%c",*a)输出一个字符或者printf("%s",a)输出字符串;char **a: a的值包含一个地址,该地址包含字符字符型数据,取消对a的引用(*a),得到该地址,再取消对该地址的引用(**a),得到一个字符,printf("%c",**a)输出一个字符转载 2015-02-28 12:19:37 · 1063 阅读 · 0 评论 -
c++MD5算法
关于MD5的C源码,请参考我空间的另外一篇文章:MD5的C源码md5.h:[cpp] view plaincopy#ifndef MD5_H #define MD5_H #include #include /* Type define */ typedef unsigned char byte; typedef unsigned in转载 2014-12-15 16:06:38 · 489 阅读 · 0 评论 -
printf记录程序日志
通常我们需要在程序中输出部分日志信息,并把它记录到文件中。在这种情况下,使用printf可以为我们带了很大方便。因为printf却省情况下是向stdout即控制台屏幕输出信息,在GUI程序中,我们看不到printf的输出结果,但是我们可以将该输出重定向到指定的文件中。即使用freopen(“c:\\yourlog.log”,“a+”,stdout)或通过yourapp.exe >c:\yourlo转载 2014-12-31 19:26:04 · 1156 阅读 · 0 评论 -
一次stl sort调用导致的进程崩溃
参考: http://blog.csdn.net/heweijietulifang/article/details/45920583 http://blog.sina.com.cn/s/blog_532f6e8f01014c7y.htmlcomp函数应该怎么写带着这个疑问我去查了下c++ stl手册(http://www.cplusplus.com/reference/algorit...转载 2018-03-20 20:12:27 · 400 阅读 · 0 评论