随笔分类 - C++
C++语言
摘要:C++ STL unordered_map用法 在C++11中,unordered_map作为一种关联容器,替代了hash_map,unordered_map的底层实现是hash表,所以被称为无序关联容器。 不管是map还是unordered_map都是一种 key map(value) 映射的容器
阅读全文
摘要:哈希表 先从数组说起 任何一个程序员,基本上对数组都不会陌生,这个最常用的数据结构,说到它的优点,最明显的就是两点: 简单易用,数组的简易操作甚至让大多数程序员依赖上了它,在资源富足的情况下,我们甚至会无意识地忽略其它更适用的数据结构而使用数组(别说你没这么干过..)。 查找的快速性,数组中查找元素
阅读全文
摘要:C++中string的实现原理 背景 当我刚开始学习C++,对C还是有一部分的了解,所以以C的思维去学C++,导致我很长一段时间的学习都处于一个懵逼的状态,C++的各种特性,标准库,模板还有版本的迭代,简直是欲仙欲死。 后来在论坛中就有热心的朋友们出招了:你得放弃C的思维去学C++!!嗯,说得好有道
阅读全文
摘要:C++构造函数的理解 相对于C语言来说,C++有一个比较好的特性就是构造函数,即类通过一个或者几个特殊的成员函数来控制其对象的初始化过程。构造函数的任务,就是初始化对象的数据成员,无论何时只要类的对象被创建,就会执行构造函数。 构造函数的语法 构造函数的名字必须和类名相同,与其他函数不一样的是,构造
阅读全文
摘要:C++模板不支持分离编译的思考 前言 在我初入程序员这行时,因为学生阶段只写一些简单的考试题,所以经常是将声明和实现统一写到一个文件中,导致同事在用我的代码时一脸懵逼,因此还有一段悲惨的往事。 为什么代码需要分离编译 通常来说,在写C/C++代码是,一般是将函数的声明放在.h文件中,而函数的定义放在
阅读全文