(C++)STL
文章平均质量分 89
一笑何方
向着明天 努力奔跑
展开
-
STL(C++)详细概述
STL的一个重要特点是数据结构和算法的分离。尽管这是个简单的概念,但这种分离确实使得STL变得非常通用。例如,由于STL的sort()函数是完全通用的,你可以用它来操作几乎任何数据集合,包括链表,容器和数组。要点STL算法作为模板函数提供。为了和其他组件相区别,在本书中STL算法以后接一对圆括弧的方式表示,例如sort()。STL另一个重要特性是它不是面向对象的。为了具有足够通用性,S转载 2017-08-03 19:24:25 · 344 阅读 · 0 评论 -
C++输入输出格式控制
C++中输入输出的十六进制八进制1、数的进制默认进制:默认状态下,数据按十进制输入输出。如果要求按八进制或十六进制输入输出,在cin或cout中必须指明相应的数据形式,oct为八进制,hex为十六进制,dec为十进制。int i, j, k, l;coutcin>>oct>>i; //输入为八进制数cin>>hex>>j; //输入为十六进制数cin>>k; //输原创 2017-08-03 19:15:54 · 1857 阅读 · 0 评论 -
C++排序问题
Set结构体排序:#include #include #include using namespace std; struct node{char ch;int cost;node(){ch = '\0';cost = 0;}//把这个函数注释了,对整个程序没有任何影响bool operator == ( const node &rh原创 2017-08-03 19:18:42 · 1935 阅读 · 0 评论 -
C++中lower_bound函数和upper_bound函数
STL中关于二分查找的函数有三个lower_bound 、upper_bound 、binary_search 。这三个函数都运用于有序区间(当然这也是运用二分查找的前提),下面记录一下这两个函数。ForwardIter lower_bound(ForwardIter first, ForwardIter last,const _Tp& val)算法返回一个非递减序列[first,原创 2017-08-04 16:14:58 · 709 阅读 · 0 评论 -
C++字符串详解
C++字符串:之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。 好了,进入正题………首先,转载 2017-08-04 16:47:02 · 446 阅读 · 0 评论 -
C++中栈结构建立与操作详细解析
什么是栈结构栈结构是从数据的运算来分类的,也就是说栈结构具有特殊的运算规则,即:后进先出。我们可以把栈理解成一个大仓库,放在仓库门口(栈顶)的货物会优先被取出,然后再取出里面的货物。而从数据的逻辑结构来看,栈结构起始就是一种线性结构。如果从数据的存储结构来进一步划分,栈结构包括两类:顺序栈结构:即使用一组地址连续的内存单元依次保存栈中的数据。在程序中,可以定义一个指定大小的转载 2017-08-04 19:19:19 · 1686 阅读 · 0 评论 -
二分查找
二分查找思想:二分查找可以解决预排序数组的查找问题。只要数组中包含T(即要查找的值),那么通过不断的缩小包含T的范围,最终就可以找到它。一开始,范围覆盖整个数组,将数组的中间项与T进行比较,可以排除一般的元素,范围缩小一半。就这样反复比较反复缩小范围,最终就会在数组中找到T,或者确定原以为T所在的范围实际为空。对于包含N个元素的表,整个查找过程大约要经过Log(2)N次比较。原创 2017-08-05 19:22:18 · 235 阅读 · 0 评论 -
全排列生成算法:next_permutation
概念全排列的生成算法有很多种,有递归遍例,也有循环移位法等等。C++/STL中定义的next_permutation和prev_permutation函数则是非常灵活且高效的一种方法,它被广泛的应用于为指定序列生成不同的排列。本文将详细的介绍prev_permutation函数的内部算法。按照STL文档的描述,next_permutation函数将按字母表顺序生成给定序列的下一个较转载 2017-08-05 15:56:17 · 338 阅读 · 0 评论