简单,可复制

点点滴滴,尽在文中

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

2012年1月3日

摘要: 前言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)

2012年1月2日

摘要: 前言虚函数是在类中被声明为virtual的成员函数,当编译器看到通过指针或引用调用此类函数时,对其执行晚绑定,即通过指针(或引用)指向的类的类型信息来决定该函数是哪个类的。通常此类指针或引用都声明为基类的,它可以指向基类或派生类的对象。通过类继承和虚函数机制可以实现C++运行期的动态多态。虚函数虚函数是动态多态性的基础,其调用的方式是动态联编(又称晚期联编,简单解释为只有在程序运行时才决定调用基类的还是子类的,系统会根据基类指针所指向的对象来决定要调用的函数)。非虚函数与其相反,是静态联编(调用已经在编译时期就决定了;在编译时期,系统已经根据指针所属的类型确定了要调用的函数)。在定义了虚函数后 阅读全文
posted @ 2012-01-02 23:20 ggjucheng 阅读(2079) 评论(0) 推荐(0)

摘要: 简单继承继承是C++的特性,它可以创建一个类,继承一个已知的类,派生类自动拥有了基类的成员。继承的形式如下:class derived_class_name: public base_class_name{ /*...*/ };其中public表示继承方式,可以替代为protected和private,如果省略继承方式,对'class'将采用私有继承,对'struct'将采用公有继承。示例代码如下:// derived classes#include <iostream>using namespace std;class CPolygon { pro 阅读全文
posted @ 2012-01-02 22:47 ggjucheng 阅读(2161) 评论(0) 推荐(0)

2011年12月31日

摘要: 现象(1) 在IE6/7/8下,使用HTTPS下载/打开文件时,通过抓包发现文件已传输,但IE提示“Internet Explorer无法下载 *** (来自 ***)。Internet Explorer无法打开该Internet站点。请求的站点不可用,或找不到。请以后再试。” ("Unable to download. Internet Explorer was unable to open this site. The requested site is either unavailable or cannot be found. Please try again later.& 阅读全文
posted @ 2011-12-31 15:00 ggjucheng 阅读(2725) 评论(1) 推荐(3)

2011年12月27日

摘要: 引言typedef 声明,简称 typedef,为现有类型创建一个新的名字。比如人们常常使用 typedef 来编写更美观和可读的代码。所谓美观,意指 typedef 能隐藏笨拙的语法构造以及平台相关的数据类型,从而增强可移植性和以及未来的可维护性。 在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。typedef的使用方法如下:typedef existing_type new_type_name ;注意:typedef 并不创建新的类型。它仅仅为现有类型添加一个同义字。typedef的最简单使用typedef int si 阅读全文
posted @ 2011-12-27 11:32 ggjucheng 阅读(45902) 评论(6) 推荐(13)