简单,可复制

点点滴滴,尽在文中

  :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2012年1月3日

摘要: 前言TinyXML是一个开源的解析XML的解析库,能够用于C++,能够在Windows或Linux中编译,使用TinyXML进行C++ XML解析,使用简单,容易上手。这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的遍历这棵XML树。 DOM模型即文档对象模型,是将整个文档分成多个元素(如书、章、节、段等),并利用树型结构表示这些元素之间的顺序关系以及嵌套包含关系。TinyXML介绍在TinyXML中,根据XML的各种元素来定义了一些类: TiXmlBase:整个TinyXML模型的基类。 TiXmlAttribute:对应于XML中的元素的属性。 TiXml 阅读全文
posted @ 2012-01-03 23:08 ggjucheng 阅读(44837) 评论(0) 推荐(4)

摘要: 虽然一些C++第三库已经继承了MD5操作,但是有时我们更需要一个轻量的md5库函数,这里提供了一个MD5类,可以传入一个字符串生成md5结果。md5库下载下载解压后,有md5.h md5.cpp main.cpp三个文件,其中md5.h和md5.cpp是MD5类的头文件和实现文件,main.cpp是测试文件。编译和运行g++ md5.cpp main.cpp -o main./main输出结果:abc md5 is 900150983cd24fb0d6963f7d28e17f72其中main.cpp文件内容,也是MD5类的使用示例,如下:#include "md5.h"#i 阅读全文
posted @ 2012-01-03 19:35 ggjucheng 阅读(21590) 评论(1) 推荐(2)

摘要: 前言JSON是一个轻量级的数据定义格式,比起XML易学易用,而扩展功能不比XML差多少,用之进行数据交换是一个很好的选择JSON的全称为:JavaScript Object Notation ,顾名思义,JSON是用于标记javascript对象的,详情参考http://www.json.org/。本文选择第三方库JsonCpp来解析json,JsonCpp是比较出名的c++解析库,在json官网也是首推的。JsonCpp简介JsonCpp主要包含三种类型的class:Value Reader Writer。jsoncpp中所有对象、类名都在namespace json中,包含json.h即可 阅读全文
posted @ 2012-01-03 16:59 ggjucheng 阅读(45616) 评论(2) 推荐(1)

摘要: 初始化和赋值// constructing maps#include <iostream>#include <map>using namespace std;bool fncomp (char lhs, char rhs) {return lhs<rhs;}struct classcomp { bool operator() (const char& lhs, const char& rhs) const {return lhs<rhs;}};int main (){ map<char,int> first; first[' 阅读全文
posted @ 2012-01-03 15:10 ggjucheng 阅读(8779) 评论(0) 推荐(0)

摘要: 初始化和赋值// constructing vectors#include <iostream>#include <vector>using namespace std;int main (){ unsigned int i; // constructors used in the same order as described above: vector<int> first; // empty vector of ints vector<int> second (4,100); ... 阅读全文
posted @ 2012-01-03 14:44 ggjucheng 阅读(5224) 评论(0) 推荐(0)

摘要: 1.连续内存序列容器(vector,string,deque)序列容器的erase方法返回值是指向紧接在被删除元素之后的元素的有效迭代器,可以根据这个返回值来安全删除元素。vector<int> c;for(vector<int>::iterator it = c.begin(); it != c.end();){if(need_delete())it = c.erase(it);else++it;}2.关联容器(set,multiset,map,multimap)关联容器的erase方法没有返回值,被删除的迭代器失效,所以删除前必须确保能得到下一个迭代器,可以用“后置 阅读全文
posted @ 2012-01-03 14:23 ggjucheng 阅读(4267) 评论(0) 推荐(0)

摘要: 初始化和赋值// string constructor#include <iostream>#include <string>using namespace std;int main (){ string s0 ("Initial string"); // constructors used in the same order as described above: string s1; string s2 (s0); string s3 (s0, 8, 3); string s4 ("A character sequence", 阅读全文
posted @ 2012-01-03 13:41 ggjucheng 阅读(8568) 评论(0) 推荐(0)

摘要: 引言C++ STL可以分为标准容器,算法和函数对象,迭代器和分配器,利用C++标准程序库,可以大量减少我们的代码,提高代码的稳定性和健壮性。标准容器C++标准容器分为序列容器和关联容器,对于序列容器,C++提供的基本序列有vector 支持随机访问,不适合做插入和删除操作频繁的场景list 双向链表,适合做元素的插入和删除,不是随机访问deque 也是一个双端序列,但是经过优化,其双端操作效率类似list,随即访问效率接近vector。从它们出发,通过定义适当的借口,生成了stack 默认用deque实现queue 默认是deque实现priority_queue 默认是vector保存元素, 阅读全文
posted @ 2012-01-03 11:47 ggjucheng 阅读(12152) 评论(0) 推荐(6)