C++ tips

来源:互联网 发布:黑户淘宝v2以上贷款 编辑:程序博客网 时间:2024/05/29 02:05
1、algorithm头文件中的sort可以给任意对象排序,包括内置类型和自定义类型,前提是类型定义了“<”运算符。排序之后可以用lower_bound查找大于或等于x的第一个置。待排序/查找的元素可以放在数组里,也可以放在vecto里。
set头文件中的set和map头文件中的map分布是集合与映射。二者都支持insert、find、count和remove操作,并且可以按照从小打到的顺序循环便利其中的元素。map还提供了"[]"运算符,使得map可以像数组一样使用。事实上,map也称为"关联数组"
set头文件中的set和map头文件中的map分布是集合与映射。二者都支持insert、find、count和remove操作,并且可以按照从小打到的顺序循环便利其中的元素。map还提供了"[]"运算符,使得map可以像数组一样使用。事实上,map也称为"关联数组"
STL的stack头文件提供了栈,用'stack<int>s"方式定义,用push()和pop()实现元素的入栈和出栈操作,top()提取栈顶元素(但不删除)
在数组中频繁移动元素是很低效的,如有可能,可以使用链表
为了方便起见,常常在链表的第一个元素之前放一个虚拟结点。
给定一棵包含2^d-1个结点(其中d为树的高度)的完全二叉树,如果把结点从-1上到下从左到右编号为1,2,3……,则结点k的左右子结点编号分别为2k和2k+1。
如果要定义一棵二叉树,一般是定义一个“结点”类型的struct(如叫Node),然后保存树根的指针(如Node* root)。
可以用new运算符申请空间并执行构造函数。如果返回值为NULL,说明空间不足,申请失败 Node* newnode() { return new Node(); }
可以用数组来实现二叉树,方法是用整数表示结点编号,left[u]和right[u]分别表示u的左右子结点的编号。

0 0
原创粉丝点击