摘要: 1 /*实现堆*/ 2 #include 3 #include 4 void down(int* A, int node, int end); 5 void HEAP(int* A, int end); 6 using namespace std; 7 void show(int t){cout =0; --i) 42 { 43 cout << node <... 阅读全文
posted @ 2017-10-21 22:24 sungnox 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 函数对象 很多STL算法都使用函数对象( for_each()、sort() )——也叫函数符(functor)。 包括函数名、指向函数的指针和重载了运算符'()'的类对象。 STL定义的函数符概念: ~生成器(generator):不用参数就可以调用的函数符; ~一元函数(unary functi 阅读全文
posted @ 2017-10-21 20:57 sungnox 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 模板使得算法独立于存储的数据类型,而迭代器使算法独立于使用的容器类型。 迭代器提供了遍历容器中值的通用表示。 每个容器类都定义了相应的迭代器类型。 STL描述了5种迭代器概念: ~输入和输出是相对于程序而言的,来自于容器的信息被视为输入;输出指将信息从程序传递给容器。 ~输入迭代器:可以递增,但不能 阅读全文
posted @ 2017-10-21 18:44 sungnox 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 标准模板库(STL)提供了一组表示容器、迭代器、函数对象和算法的模板。STL不是面向对象的编程,而是一种编程模式——泛型编程。 面向对象编程关注的是编程的数据方面,而泛型编程关注的是算法。 容器模板类 STL具有容器概念和容器类型。概念是一种通用类别(如,基本容器、序列容器、关联容器等);容器类型是 阅读全文
posted @ 2017-10-20 21:53 sungnox 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 你究竟是玩家还是角色!!! 1、String类 string实际上是模板具体化basic_base<char>的一个typedef。 string类将string::npos定义为字符串的最大长度,npos变量是string类的静态成员。 string类的构造函数如下: 构造函数参数为string和 阅读全文
posted @ 2017-10-20 11:36 sungnox 阅读(296) 评论(0) 推荐(0) 编辑
摘要: iostream 仅包含<iostream>可以使用string类,但是string类的运算符"<<"是在头文件<string>中重载的。因此要使用cout对象输出string对象,必须包含头文件<string>。 cstdlib iomanip cmath 摘自:http://www.cnblog 阅读全文
posted @ 2017-10-11 19:01 sungnox 阅读(2388) 评论(0) 推荐(0) 编辑
摘要: 排序算法经过了很长时间的演变,产生了很多种不同的方法。对于初学者来说,对它们进行整理便于理解记忆显得很重要。每种算法都有它特定的使用场合,很难通用。因此,我们很有必要对所有常见的排序算法进行归纳。 我不喜欢死记硬背,我更偏向于弄清来龙去脉,理解性地记忆。比如下面这张图,我们将围绕这张图来思考几个问题 阅读全文
posted @ 2017-10-11 14:18 sungnox 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 这几天笔试了好几次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目,当然如果你笔试之前已经记住了数据结构书上哪些是稳定的,哪些不是稳定的,做起来应该可以轻松搞定。本文是针对老是记不住这个或者想真正明白到底为什么是稳定或者不稳定 阅读全文
posted @ 2017-10-11 14:12 sungnox 阅读(160) 评论(0) 推荐(0) 编辑
摘要: “free store” VS “heap” 当我问你C++的内存布局时,你大概会回答: “在C++中,内存区分为5个区,分别是堆、栈、自由存储区、全局/静态存储区、常量存储区”。 如果我接着问你自由存储区与堆有什么区别,你或许这样回答: “malloc在堆上分配的内存块,使用free释放内存,而n 阅读全文
posted @ 2017-10-11 13:59 sungnox 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 下面的代码都能正常编译通过(编译环境为VS2010) 一、 一个奇怪的现象: 1. 代码如下: int *a; cout << &a << endl; cout << a << endl; 没有报错; 2. 代码改成: int *a; cout << a << endl; cout << &a << 阅读全文
posted @ 2017-10-11 10:03 sungnox 阅读(1712) 评论(0) 推荐(0) 编辑