C/C++
文章平均质量分 81
Hit_liuyongwei
这个作者很懒,什么都没留下…
展开
-
STL中排序算法介绍
1 STL提供的Sort 算法 C++之所以得到这么多人的喜欢,是因为它既具有面向对象的概念,又保持了C语言高效的特点。STL 排序算法同样需要保持高效。因此,对于不同的需求,STL提供的不同的函数,不同的函数,实现的算法又不尽相同。 1.1 所有sort算法介绍 所有的sort算法的参数都需要输入一个范围,[begin, end)。这里使用的迭代器(iterator)都需是转载 2014-08-25 21:58:49 · 603 阅读 · 0 评论 -
STL迭代器
迭代器(iterator)是连接容器和算法的纽带,为数据提供了抽象,使写算法的人不必关心各种数据结构的细节。迭代器提供了数据访问的标准模型——对象序列,使对容器更广泛的访问操作成为可能。 泛型编程的关键所在,就是如何找到一种通用的方法,来访问具有不同结构的各种容器中的每个元素,而这正是迭代器的功能。 迭代器是一种广义的指针,是指向序列元素指针概念的一种抽象。迭代器可以指向容器中的任意元素,还能转载 2014-08-13 20:18:25 · 386 阅读 · 0 评论 -
C++中的虚函数
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 关于虚函数的使用方法,我在这里不做过转载 2014-08-26 21:33:58 · 444 阅读 · 0 评论 -
STL之查找
二分查找 binary_search Tests whether there is an element in a sorted range that is equal to a specified value or that is equivalent to it in a sense specified by a binary predicate. templatecla转载 2014-08-12 20:44:16 · 414 阅读 · 0 评论 -
C/C++中栈内存和堆内存详解
堆和栈的区别 一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链转载 2014-08-24 11:12:19 · 826 阅读 · 0 评论 -
优先队列及最大堆最小堆
1 堆 1.1 简介 n个关键字序列Kl,K2,…,Kn称为(Heap),当且仅当该序列满足如下性质(简称为堆性质): (1)ki=号。//k(i)相当于二叉树的非叶结点,K(2i)则是左孩子,k(2i+1)是右孩子 若将此序列所存储的向量R[1..n]看做是一棵完全二叉树的存储结构,则堆实质上是满足如下性质的完全二叉树: 树中任一非叶结点的关键字均不大于(或不小转载 2014-08-07 20:52:03 · 546 阅读 · 0 评论 -
优先队列的使用
这个是转得网上的,由于不经常使用,偶尔用的时候还经常出错,所以记下来了,经常使用的已经用红色颜色标出来了 : 在优先队列中,优先级高的元素先出队列。 标准库默认使用元素类型的 优先队列的第一种用法,也是最常用的用法: priority_queueint> qi; 通过 故示例1中输出结果为:9 6 5 3 2 第二种方法: 在示例1中,如果我们要把元转载 2014-08-07 20:56:05 · 324 阅读 · 0 评论 -
C++中string总结
相比char*的字符串,C++标准程序库中的string类,具有不必担心内存是否足够、字符串长度等等的优势,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。 首先,为了在我们的程序中使用string类型,我们必须包含头文件 。如下:转载 2014-07-28 21:14:10 · 541 阅读 · 0 评论 -
关于C++中const的全面总结
C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助。 Const 是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。 一、Const作用 如下表所示: No. 作用 说明 参考代码转载 2014-08-04 21:02:46 · 377 阅读 · 0 评论 -
C++类访问控制与派生
一、C++类的访问控制有三类:public,protected和private。 类访问控制符 类成员可被哪些对象访问 public 1、类的成员函数。2、类对象。3、友元。4、子类成员函数 protected 1、类的成员函数。2、友元。3、子类成员函数 private 1、类的成员函数。2、友元转载 2014-07-27 19:31:46 · 592 阅读 · 0 评论 -
C++中模板特化的概念
1. 模板的特化 C++中经常为了避免重复的编码而需要使用到模板,这是C++泛型编程不可或缺的利器。然而通常又有一些特殊的情况,不能直接使用泛型模板展开实现,这时就需要针对某个特殊的类型或者是某一类特殊的类型,而实现一个特例模板————即模板特化。通常会使用到模板特化的有(应该也只能有)类模板和函数模板。 a. 类模板特化 在已有类模板 template class stack {转载 2014-08-01 19:48:12 · 698 阅读 · 0 评论 -
C++中const用法浅析
看到const 关键字,很多程序员想到的可能是const 常量,这可有点象踩到陷井上还不知道自己危险了。读读以下文字会使你对c++中的const有一个全面的认识。 const 是C++中常用的类型修饰符,有某些微妙的应用场合,如果没有搞清本源,则错误在所难免。本篇中将对const进行辨析。溯其本源,究其实质,希望能对大家理解const有所帮助,根据思维的承接关系,分为如下几个部分进行阐述。转载 2014-11-13 22:40:33 · 408 阅读 · 0 评论