Zhang's Wikipedia

玩就玩大的

标准模板库(STL)之 map 列传 (二)

标准模板库(STL)之 map 列传 map 容器的遍历 修改 key or value 实用的成员函数 下标 vs atmap 容器的遍历 使用 range-based for 循环访问 map 元素(C++11之后方支持)std::map<std::string, float> ...

2016-02-29 21:21:52

阅读数:529

评论数:0

标准模板库(STL)之 list 列传

list 使用一个 double-linked list (双向链表)来管理元素。只有运用迭代器,才能够访问 list 中的各个元素。也即 list 不支持operator []运算符重载(不开放在这样的接口给用户的目的也恰在于这不是一个高效的访问 list 中元素的方式)。list vs vec...

2016-02-29 20:46:36

阅读数:398

评论数:0

数据结构——红黑树(red-black tree)

红黑树在改变元素数量和元素搜索方面都很出色,它保证节点安插时最多只会做两个重新链接(relink)的动作,而且到达某一元素的最长路径的深度,至多只是最短路径的深度的两倍。STL 中的重要容器——set/multiset 通常以红黑树(red-black tree)实现。

2016-02-29 20:29:00

阅读数:559

评论数:0

STL 算法/容器——总论

不同算法所需的迭代器类型

2016-02-29 20:03:33

阅读数:426

评论数:0

标准模板库(STL)之 map 列传

1. 模板参数 2. 元素的插入与移除(inserting and removing) 3. 排序规则只返回true/false,map容器如何实现查重与去重 4. 迭代器类型

2016-02-29 17:23:51

阅读数:783

评论数:0

工具的使用 —— 键盘

如果一台计算机的基本外设发明的顺序是先有的键盘,后有的鼠标?一个自然的问题即是,在鼠标面试之前的人们是如何操作计算机的。人类走的如此之外,以至于常常忘记自己是从何而来。 开启鼠标键:Alt(左)+Shift(左)+Num Lock(位于数字键盘左上角)开启了鼠标键,我们就可以使用键盘以鼠标的方式进...

2016-02-29 16:29:44

阅读数:532

评论数:0

STL 中的容器们 (二)

STL 中的容器们 容器最后一个元素的迭代器我们知道容器: .begin():第一个元素coll[0]的迭代器 .end():最后一个元素之前的元素的迭代器 所以容器最后一个元素的迭代器为:coll.end()-1;序列式容器 vs 关联式容器 两大类型的容器的一大区别在于: 所谓序列式是允...

2016-02-28 21:53:34

阅读数:379

评论数:0

utilities —— 常见宏定义

C语言宏的特殊用法和几个坑 毫无疑问,宏的理解和运用是提升 C 程序效率的一大关键技术,也是评价一个 C 程序员的重要指标。本文将列举一些经典的宏函数,并给出其注意事项。 注意,宏不是函数,没有函数所对应的栈空间,宏仅仅是替换而已。 1. 宏的意义 (1)关于常量的宏定义,与枚...

2016-02-28 20:46:00

阅读数:650

评论数:0

可重入函数与不可重入函数

可重入:可重新进入,也即两次进入的现场一模一样?原文地址 什么是可重入函数和不可重入函数(转)在实时系统的设计中,经常会出现多个任务调用同一个函数的情况。如果这个函数不幸被设计成为不可重入的函数的话,那么不同任务调用这个函数时可能修改其他任务调用这个函数的数据,从而导致不可预料的后果。那么什么是可...

2016-02-28 16:22:11

阅读数:395

评论数:0

C语言宏的特殊用法和几个坑

原文请见 C语言宏的特殊用法和几个坑总结一下C语言中宏的一些特殊用法和几个容易踩的坑。由于本文主要参考GCC文档,某些细节(如宏参数中的空格是否处理之类)在别的编译器可能有细微差别,请参考相应文档。一、宏基础宏仅仅是在 C 预处理阶段的一种文本替换工具,编译完之后对二进制代码不可见(仅用于文本替换...

2016-02-28 16:15:39

阅读数:640

评论数:0

面向对象 —— 结构与设计

1. 模型类与控制类 让保存数据的类,仅用于数据的持有,除此之外,不向外界提供过多的修改接口(甚至是访问接口),修改(有时是访问)接口统一交由其控制类。举一个不恰当的例子,试卷类仅用于记录成绩,只有教师类(控制类)可对成绩进行一系列的修改和访问。 让控制类(操纵数据的类),仅用于操作动作(而不...

2016-02-28 12:04:42

阅读数:624

评论数:0

辨异 —— 单词(同义词)的辨异

football vs soccer

2016-02-28 09:52:25

阅读数:539

评论数:0

面向对象——意图与逻辑

编程语言中关键字的本质是什么?是向编译器传达一些信息。 何谓意图与逻辑这样古怪的词? 比如,对编译器而言,出现const修饰符,就是告诉(意图)编译器,“我不是左值,不可被修改,所有的修改动作都是非法的”。 1. virtual 同样对于一个类,在该类中兹要出现一次的virtual...

2016-02-27 21:54:05

阅读数:666

评论数:0

面向对象——面向客户端编程

面向对象的因果论,因为存在客户端关于客观事实的抽象(也即所需的类),类间的关系,以及各自的方法,我们才进行类的设计与实现。再次,回到客户端编程时,在主函数(main),在多类、且类间关系较为复杂的局面下,客户端调用时,如何创建不同类的对象?首先需要考虑的是,各类的物理意义(类来源于实际,而抽象于实...

2016-02-27 21:28:05

阅读数:394

评论数:0

工具的使用——windows操作系统的使用(二)

工具的使用——windows操作系统的使用 (1)域名解析文件的位置:C:/Windows/System32/drivers/etc/hosts (2)windows7 启动屏幕保护程序【桌面右键】⇒ 【个性化】 ⇒ 【屏幕保护程序】 (3)Linux vs Windows 关于分区(a)Wind...

2016-02-27 16:59:53

阅读数:606

评论数:0

C 程序的可移植性

不是说 C 语言是一门跨平台的语言吗?不尽然,不同的平台对C语言做了不同程度的支持和拓展,所谓的拓展即是在原有的C标准的基础上,又设计和实现了高层的api。 如果只在 windows 平台下开发,或者只在 linux 平台下开发,也即只在单一平台下开发,是不会遇到程序移植性的问题的。本文以wind...

2016-02-27 16:24:34

阅读数:590

评论数:0

C 标准库 —— scanf(fflush(stdin))

楔子#include <stdio.h>int main(int, char**) { int a; while (true) { fputs("please input an integer: ", stdout); ...

2016-02-27 16:14:47

阅读数:363

评论数:0

C 标准库—— assert.h

<assert.h>头文件

2016-02-27 11:18:09

阅读数:414

评论数:0

C 基础——指针函数与函数指针

一、指针函数的定义指针函数,顾名思义,返回指针的函数。其一般定义形式如下:类型名 *函数名(函数参数列表);其中,后缀运算符括号()表示这是一个函数,其前缀运算符星号*表示此函数为指针型函数,其函数返回值为指针,当调用这个函数后,将得到一个“指向返回值为…的指针(地址),类型名表示函数返回的指针指...

2016-02-27 08:59:31

阅读数:336

评论数:0

C基础——文本格式和二进制格式的区别

原文请见 深入:文本格式和二进制格式到底有什么不同?“信息”在机器层面是通过0和1的排列方式来体现的。可是这些0和1如何变成我们在windows环境下的记事本中看到的文本或者图片查看器中看到的图片呢?这里面就有一个编码的问题!所以,二进制文件和文本文件的不同就是编码层面的不同,二进制文件是值编码,...

2016-02-26 22:23:34

阅读数:551

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭