最近学习了json for modern c++的使用,在此总结一些常用功能使用方法。 老规矩,还是先简单介绍一下什么是json吧。 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。 今天介绍的json版本是在c++下使用的,是一个开源项目。 GitHub开源项的地址:https://github.com/nlohmann/json json for modern c++是一个德国大牛nlohmann写的,该版本的json有以下特点: 1.直观的语法。 2.整个代码由一个头文件组成json.hpp,没有子项目,没有依赖关系,没有复杂的构建系统,使用起来非常方便。 3.使用c++11标准编写。 继续阅读 >>


冯鑫 17/04/30 23:33:35
指针、迭代器与const的关系 1. 如果关键字出现在星号左边,表示被指物是常量;如果出现在星号右边,表示指针自身是常量;如果出现在星号两边,表示被指物和指针两者都是常量。如果被指物是常量,把 const 写在类型之前或者类型之后、星号之前是一样的。 2. 迭代器的作用就像 T* 指针,const 在迭代器前,迭代器不能改变,即声明一个 T* const 指针;const 在迭代器变量前,迭代器所指变量不能变,即声明一个 const T* 指针,需要用 const_iterator。 vector<int> vec; const vector<int>::iterator iter = vec.begin(); //iter就像个T* const *iter = 10; //right ++iter; //iter不能变 vector<int>::const_iterator cIter = vec.begin(); //cIter 继续阅读 >>


杜肖孟 17/04/30 18:04:51
致谢 首先感谢提供机器让我测试的Sequin_YF、Paranoid同学,没有你们,没有本文。 以及友好的redis.cn的各种中文教程,本文主要来自redis cluster教程 正文 Redis-cluster简介 Redis作为大火的K-V NoSQL自然不用细说。 Redis的集群方案可以参照这个Redis集群怎么做 问题的回答 而关于本篇中的集群我引用了redis cluster教程的叙述 Redis 集群是一个提供在多个Redis间节点间共享数据的程序集。 Redis集群并不支持处理多个keys的命令,因为这需要在不同的节点间移动数据,从而达不到像Redis那样的性能,在高负载的情况下可能会导致不可预料的错误. Redis 集群通过分区来提供一定程度的可用性,在实际环境中当某个节点宕机或者不可达的情况下继续处理命令. Redis 集群的优势: 自动分割数据到不同的节点上。 整个集群的部分节点失败或者不可达的情况下能够继续处理命令。 傻瓜配置 主要需要Redis (version > 3, 继续阅读 >>


康艺杰 17/04/30 12:32:24
预处理器、编译器、汇编、链接 预处理器(cpp) C/C++的预处理器是最低端的一种—–词法预处理器,主要是进行文本替换、宏展开、删除注释、把头文件内容包含进来这类简单工作。 gcc -E选项可得到预处理后的结果,预处理结果会显示到屏幕上,如果需要保存,则得需要重定向,扩展名为 .i; C/C++预处理不做任何语法检查,不仅是因为它不具备语法检查功能,也因为预处理命令不属于C/C++语句(这也是定义宏时不要加分号的原因),语法检查是编译器要做的事情; 预处理之后,得到的仅仅是真正的源代码,输出一个hello world都有好几百行代码; GCC确实很强大,如果是用VC这种IDE,恐怕就不能看到预处理后的结果。 编译器(ccl) 将文本文件 .i 翻译成文本文件.s,得到汇编语言程序(把高级语言翻译为机器语言),该种语言程序中的每条语句都以一种标准的文本格式确切的描述了一条低级机器语言指令。 gcc -S 选项可以得到编译后的汇编代码,扩展名为 .s; 汇编语言为不同高级语言的不同编译器提供了通用的输出语言,比如,C编译器和Fortra 继续阅读 >>


杜肖孟 17/04/30 12:28:46
内核时间,延时与缓存   时间 内核通过定时器中断来跟踪时间流,记录每次时钟周期的滴答数,现代大多数 […] 继续阅读 >>


张明瑞 17/04/30 05:14:12
关于IO的高级话题   阻塞型IO –休眠   让一个进程进入休眠状态是很容易 […] 继续阅读 >>


张明瑞 17/04/30 05:11:11
Concurrency and competition   并发与竞态 竞态 竞态条件(race c […] 继续阅读 >>


张明瑞 17/04/30 05:07:43
  内核调试的几种方法   内核自带的调试开关   CONFIG_DEBUG_K […] 继续阅读 >>


张明瑞 17/04/30 05:05:33
scull 字符设备驱动程序的设备描述 字符设备驱动程序是分配一段内存,然后提供对这个设备的管理方式,我们通过 […] 继续阅读 >>


张明瑞 17/04/30 05:00:51
During the kindergarten days, flymouse was the monitor of his class. Occasionally the head-teacher brought the kids of flymouse’s class a large bag of candies and had flymouse distribute them. All the kids loved candies very much and often compared the numbers of candies they got with others. A kid A could had the idea that though it might be the case that another kid B was better than him in some aspect and therefore had a reason for deserving more candies than he did, he shou 继续阅读 >>


楚东方 17/04/29 23:08:10