摘要:
静态变量的类型说明符是static。静态变量当然是属于静态存储方式,但是属于静态存储方式的量不一定就是静态变量,例如外部变量虽属于静态存储方式,但不一定是静态变量,必须由 static加以定义后才能成为静态外部变量,或称静态全局变量。对于自动变量,它属于动态存储方式。但是也可以用static定义它为 阅读全文
摘要:
说明:set 中所有元素都会根据元素的键值自动被排序。set 的元素不像 map 那样可以同时拥有实值和键值,set 的元素即是键值又是实值。set 不允许两个元素有相同的键值。不可以通过 set 的迭代器改变 set 元素的值,因为 set 元素值就是其键值,关系到 set 元素的排序规则。如果任 阅读全文
摘要:
说明:map 的所有元素都会根据元素的键值自动排序。map 所有的元素都是 pair,同时拥有实值和键值,pair 的第一元素被视为键值,第二元素被视为实值,map 不允许两个元素有相同的键值。不可以通过 map 的迭代器改变 map 的键值,因为 map 的键值关系到 map 元素的排列规则,任意 阅读全文
摘要:
说明:list 容器是一个循环的双向链表。链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域 阅读全文
摘要:
说明:二叉树是一种非常重要的数据结构。对于二叉树,有两种遍历方式:深度遍历和广度遍历。其中深度遍历有前序、中序以及后序三种遍历方式。而广度遍历及常说的层次遍历。 1. 四种基本遍历的思想: 前序遍历:根节点->左子树->右子树 中序遍历:左子树->根节点->右节点 后续遍历:左子树->右子树->根节 阅读全文
摘要:
说明:queue 是一种先进先出(First In First Out,FIFO)的数据结构,它有两个出口,queue容器允许从一端新增元素,从另一端移除元素。 注意:Queue 所有元素的进出都必须符合”先进先出”的条件,只有 queue 的顶端元素,才有机会被外界取用。Queue 不提供遍历功能 阅读全文
摘要:
说明:stack 是一种先进后出(First In Last Out,FILO)的数据结构。元素推入栈的操作称为:push,将元素推出栈的操作称为 pop. 注意:stack 所有元素的进出都必须符合”先进后出”的条件,只有 stack 顶端的元素,才有机会被外界取用。Stack 不提供遍历功能,也 阅读全文
摘要:
说明:vector 容器是单向开口的连续内存空间,deque 则是一种双向开口的连续线性空间。所谓的双向开口,意思是可以在头尾两端分别做元素的插入和删除操作,当然,vector 容器也可以在头尾两端插入元素,但是在其头部操作效率奇差,无法被接受。 注意:deque 容器的迭代器并不是普通的指针,其复 阅读全文
摘要:
说明:C风格的字符串(以\0结尾)太过于复杂,C++标准库定义了一种string类,头文件为<string>. *string和c风格字符串对比: 1. char*是一个指针,string是一个类,string封装了char*, 2. string自动管理char*所分配的内存,不用担心发生像c字符 阅读全文
摘要:
引言:先看下面一个程序会打印出什么? 64 位Linux 下测试结果: 64 位Windows下测试结果: 好奇的人可以自己去测试结果,这里留点悬念!我只告诉你不同的电脑、不同的编译器都有可能得出不一样的结果。为什么呢?请往下看: 首先: 1. 操作系统有32/64位之分,但同时CPU也有32/64 阅读全文