码迷,mamicode.com
首页 >  
搜索关键字:stl next_permutation    ( 6534个结果
Android STL PORT
ndk中包含了stl对应的库,在$(NKD_HOME)/sources/cxx-stl/stlport/stlport有关Android NDK的C++ STL开发相关总结如下:从Android NDK r5开始支持了STL Port,在这个版本开始就可以使用部分STL库的功能了,比如说vector...
分类:移动开发   时间:2014-06-25 15:25:39    阅读次数:183
第三讲
// STL.cpp : 定义控制台应用程序的入口点。////vector是一个连续的向量,相当于数组。vector不建议除了尾部之外的数据添加删除操作。//vector::iterator 迭代器#include "stdafx.h"#include#includeusing namespace ...
分类:其他好文   时间:2014-06-25 14:19:23    阅读次数:177
using STL
这是本小人书。原名是《using stl》STL概述STL的一个重要特点是数据结构和算法的分离。尽管这是个简单的概念,但这种分离确实使得STL变得非常通用。例如,由于STL的sort()函数是完全通用的,你可以用它来操作几乎任何数据集合,包括链表,容器和数组。要点STL算法作为模板函数提供。为了和其...
分类:其他好文   时间:2014-06-25 12:46:08    阅读次数:288
STL之stack适配器的实现框架
一提到适配器(adapter),我们就想到了早期用电话线上网所用的调制解调器,俗称“猫”,“猫”的作用是实现数模转化和模数转化,在客户端,它可以将电话的模拟信息转化为我们计算机能够接收的数字信息,所以猫相当于一个转换器。再举个更加好理解的例子来说明"适配器“的含义。相信在我们每个人的家里都有插排,假设就这么一种情况,现在我们家里的墙壁上只有一个三角的插口,而我们的电视却是两个口,怎么办?毫无疑问,我们可以接一个新的插排,该插排至少有两个孔,一个是用于连接墙壁上的三角的插口,一个则是提供给电视剧用的两口的插口...
分类:其他好文   时间:2014-06-25 10:55:59    阅读次数:285
使用reserve来避免不必要的重新分配
关于STL容器,最了不起的一点是,它们会自动增长以便容纳下你放入其中的数据,只要没有超出它们的最大限制就可以。对于vector和string,增长过程是这样来实现的:每当需要更多空间时,就调用与realloc类似的操作。这一类似于realloc的操作分为4部分: 分配一块大小为当前容量的某个倍数的新内存。在大多数实现中,vector和string的容量每次以2的...
分类:其他好文   时间:2014-06-25 08:40:21    阅读次数:287
使用“swap技巧”除去多余的容量
?? 当我们需要从矢量中删除一些元素,通常是通过调用区间形式的erase。这很好的缩减了改矢量的大小,但并没有减小它的容量。如果你的矢量在某一个时刻拥有十万个候选人,那么它的容量将继续保持在(至少)100000,即使后来其中只有10个元素。为了避免矢量仍占用不再需要的内存,我们希望有一种方法能把它的容量从以前的最大值缩减到当前需要的数量。这种对容量的缩减通常被称为“shrink to f...
分类:其他好文   时间:2014-06-25 08:25:27    阅读次数:172
STL之deque容器的实现框架
vector底层采用的是一个数组来实现,list底层采用的是一个环形的双向链表实现,而deque则采用的是两者相结合,所谓结合,并不是两种数据结构的结合,而是某些性能上的结合。我们知道,vector支持随机访问,而list支持常量时间的删除,deque支持的是随机访问以及首尾元素的删除。...
分类:其他好文   时间:2014-06-25 08:17:41    阅读次数:383
关于typename和class的使用
?? 一般情况下,是用typename还是用class纯粹是一个风格问题。但是在一种情况下,它就不是一个风格问题了。为了避免潜在的语法解析二义性,你需要在从属于形式类型参数的类型名前面使用typename。这样的类型被称为从属类型,用一个例子可以说明这一点。假设你要写一个函数模板,给它一个STL容器,它将返回容器中的最后一个元素是否大于第一个元素。下面是一种实现方式: template...
分类:其他好文   时间:2014-06-25 07:41:01    阅读次数:200
如何把vector和string数据传给旧的C API
?? 通常情况下,旧的C API使用数组合char*指针来进行数据交换而不是vector或string对象。这样的API还将存在很长的一段时间,如果我们想有效地使用STL,我们就必须与它们和平共处。 幸运的是,这很容易做到。如果有一个vector v,而需要得到一个指向v中数据的指针,从而可把v中的数据作为数组来对待,那么只需要使用&v[0]就可以了。对于string s,对应的形...
分类:Windows程序   时间:2014-06-25 06:50:15    阅读次数:337
避免使用vector<bool>
?? 作为一个STL容器,vector只有两点不对。首先,它不是一个STL容器。其次,它并不存储bool。除此之外,一切正常。 一个对象要成为容器,就必须满足C++标准中列出的所有条件,其中一个条件是,如果c是包含对象T的容器,而且c支持operator[],那么下面的代码必须能够被编译: T *p = &c[0]; 换句话说,如果用operator[]取得了contain...
分类:其他好文   时间:2014-06-25 06:49:34    阅读次数:242
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!