stl相关内容

磁盘备份STL容器类?

我喜欢开发使用STL算法,但是,我有这个经常出现的问题在我的数据集过大堆。 我一直在寻找直接替代的STL容器和算法这是磁盘备份,即对存储在磁盘上,而不是堆的数据结构。 一个朋友最近向我指出对 stxxl 。之前,我也参与了它...任何其他磁盘备份STL替换用,我应该考虑? 注:我没有兴趣在持续性或嵌入式数据库。请不要提的boost ::系列化,POST ++,关系模板库,Berkeley D ..
发布时间:2015-11-30 15:50:10 C/C++开发

进行部分顺序,而相比之下,总阶,足以建立一个堆?

C ++的std :: priority_queue只需要一个偏序。但是,如果它的实施是一个二叉堆,它是如何工作的? 例如:假设我们有一个偏序集({A,B,C,X},{C< B,B< A,C<一}), X 无关与 A , B , C 。然后,最大堆是: 图层1:X 第2层:宽x 第3层:X X是C 弹出操作后,在某种程度上常见于课本,即​​替换根ç和减1的大小。然后,我 ..
发布时间:2015-11-30 15:42:22 C/C++开发

使用"独特的()"在C语言载体的载体++

我希望这不是一个重复的问题,但如果是,请随时点我在正确的方向。 我有一个矢量<矢量< INT> > 是否可以使用独特的()对此怎么看?是这样的: 矢量<矢量< INT> >将myvec; //等等等等做一些将myvec 矢量<矢量< INT> > ::迭代符它=独特(myvec.begin(),myvec.end()); ..
发布时间:2015-11-30 15:39:39 C/C++开发

为什么会出现算法,迭代器和容器中的C ++ STL分离

我不明白,为什么他们在C ++ STL分离算法,迭代器和容器。如果它是一个大量使用的模板无处不在,那么我们可以在一个地方与模板参数的所有的东西类。 这是我得到了一些文字说明了迭代器有助于算法与容器的数据交互,但是,如果容器暴露一些机制来访问它拥有的数据? 解决方案 通过 M 容器+ N 算法,人们通常将需要 M *ñ件code,但与作为“胶水”的迭代器,这可以降低到 M + N 的code片 ..
发布时间:2015-11-30 15:20:05 C/C++开发

性病的摊销分析::载体插入

我们怎么做插入的分析,在一个std :: vector的后面(的push_back)?它的摊销时间是每次插入O(1)。特别是在一个这是怎么常数决定? 解决方案 假设你的意思是的push_back ,而不是插入,我认为重要的部分是乘以某个常数(而不是抓住每一次N多的元素),只要你这样做,你会得到分期常量时间。改变的因素改变了一般情况和最坏情况下的性能。 具体: 如果你的常数因子太大,你就会有不 ..
发布时间:2015-11-30 15:02:53 C/C++开发

最有效的方式来逃避XML / HTML的C ++字符串?

我无法相信这个问题一直没有问过。予有需要被插入到HTML文件中的字符串,但它可以含有特殊的HTML字符。我想用适当的HTML再presentation替换这些。 以下作品中的code,但为pretty的冗长和丑陋。性能是不是我的应用程序的关键,但我想有可扩展性问题在这里也。如何提高呢?我想这是STL的算法或者一些深奥的升压功能的工作,但低于code是最好的,我可以拿出自己。 无效逃生(标准:: ..
发布时间:2015-11-30 14:58:55 C/C++开发

确定的无序矢量< T>拥有各种独特的元素

剖析我的CPU绑定的code已建议我是花很长的时间来检查,看是否有容器包含完全独特的元素。假设我有无序的元素一些大型集装箱(与< 和 = 中定义),我有两个想法这是如何完成: 在使用一组第一: 模板<类T> 布尔is_unique(矢量< T> X){ 设置< T> Y(X.begin(),X.end()); 返回X.size()== Y.si ..
发布时间:2015-11-30 14:54:56 C/C++开发

如何使用for_each的输出来清点?

有没有更直接的方式来做到这一点? 的for_each(v_Numbers.begin(),v_Numbers.end(),bind1st(运营商<<,COUT)); 如果没有一个明确的为循环,如果可能的话。 编辑: 如何做到这一点的的std :: CIN 与的std ::矢量如果可能的话? (如何阅读 N 元素只)? 解决方案 同样的事情也将是这样的: 的std ::矢量 ..
发布时间:2015-11-30 14:46:19 C/C++开发

选择性迭代器

供参考:无刺激,是的,它有这个,我的需要的推倒重来;) 有某种形式的C ++选择性迭代器(可能的)吗?我想是要分开这样的字符串: 部分:文字{或其他 以这样的形式: 部分:文字{或其他 我能做到这一点有两个回路和find_first_of(“:”)和(“{”),但这似乎(非常)低效率的我。我想,也许会有一种方式来创建/定义/写一个迭代,将遍历用的for_each所有这些值。我 ..
发布时间:2015-11-30 14:39:45 C/C++开发

什么将是一个很好的实现iota_n的(缺少的STL算法)

使用C ++ 11中,STL现在有一个的std ::丝毫函数(见的引用)。相反,的std :: fill_n ,的std :: generate_n ,没有 STD: :iota_n ,但是。什么将是一个很好的实现是什么?直接环路(备选方案1)或委派的std :: generate_n 用一个简单的lambda EX pression(备选2)? 方案1) 模板<类输出迭代器,班级规模, ..
发布时间:2015-11-30 14:36:09 C/C++开发

哪个排序算法是使用STL的名单::排序()?

我有随机整数的列表。我不知道使用哪种算法由列表:: sort()方法。例如。在下面的code: 列表< INT> mylist中; // ..insert百万值 mylist.sort(); 编辑:另请参阅解决方案 不需要特定的算法,只知道它必须是稳定的,而且它使用大约ñLGñ比较完成排序标准。这使得,例如,合并排序或快速排序(出乎人们意料的链表版本,快速排序是没有的 ..
发布时间:2015-11-30 14:27:57 C/C++开发

是否有一个STL算法来寻找序列中值的最后一个实例?

使用STL,我想找到一个序列中某个值的最后一个实例。 这个例子会发现在整数的向量中的第一的0实例。 的#include<算法> #包括<迭代器> #包括<载体> 类型定义的std ::矢量< INT> INTVEC; INTVEC值; // ...整数加到值 INTVEC ::常量性拆分=的std ::发现(values​​.begin(),v ..
发布时间:2015-11-30 14:25:45 C/C++开发

如何使用查找算法指针的向量对象在C ++?

我想找到的对象指针的匹配对象的向量。下面是一个示例code来说明我的问题: A级{ 上市: A(字符串):_一(一){} 布尔运算符==(常量A和P){ 返回p._a == _a; } 私人: 串_a; }; 矢量< A *> VA; va.push_back(新A(“1”)); va.push_back(新A(“二”)); v ..
发布时间:2015-11-30 14:23:29 C/C++开发

性病的摊销复杂:: next_permutation?

我刚才读解决方案 所以看起来像我将要回答我的问题是肯定的 - 是, next_permutation 运行在O(1)摊销的时间。 在我进入这个正式的证明,这里的一对算法如何工作的快速复习。第一,它扫描从向后朝开始的范围的端部,识别所述最长连续减小子序列的范围内,在最后一个元素结束。例如,在 0 3 4 2 1 ,该算法将确定 4 2 1 因为这样子。接着,着眼于元件右侧前此亚序列(在上面的例子 ..
发布时间:2015-11-30 14:21:12 C/C++开发

快速的方式来复制一个向量到另一个

我preFER两种方式: 无效copyVecFast(常量VEC< INT>&安培;原) { 矢量< int的> newVec; newVec.reserve(original.size()); 副本(original.begin(),original.end(),back_inserter(newVec)); } 无效copyVecFast(VEC< ..
发布时间:2015-11-30 14:15:54 C/C++开发

投掷的最胖的人断过载的飞机。

假设你有一架飞机,它是低燃料。除非平面下降三千磅乘客的重量,它将无法到达下机场。为了挽救生命的最大数量,我们想先抛出最重的人下飞机的。 和噢,现在有成千上万的人在飞机上,我们希望优化算法来找出最重的乘客,而不必进行排序的整个列表。 这是什么东西,我想code C ++中的代理问题。我想这样做的重量体现了乘客一个“partial_sort”,但我不知道我有多少元素将需要。我可以实现我自己的“pa ..
发布时间:2015-11-30 14:11:24 C/C++开发

对于UPPER_BOUND / LOWER_BOUND比较功能

我想找到有比一些x值的字段少的排序向量的第一个项目。 我需要提供比较函数比较'X'在MyClass的内在价值,但我不能工作了函数声明。 不能我只是重载'<“但我怎么做到这一点的args是当'和; MyClass的“和”浮动“? 浮动X; 的std ::矢量< MyClass的>:迭代最后=的std :: UPPER_BOUND(myClass.begin(),myClas ..
发布时间:2015-11-30 14:06:13 C/C++开发

是否有任何技术原因的std :: LOWER_BOUND不是专用于红黑树迭代器?

我一直认为的std :: LOWER_BOUND()运行在对数时间,如果我通过了一双红黑树迭代器(集::迭代器或图:迭代)给它。我不得不把自己烧得两次注意到的std :: LOWER_BOUND()在O(n)的运行时间在这种情况下,至少用libstdc ++实现。据我所知,标准不具有红黑树迭代器的概念; 的std :: LOWER_BOUND()会把这作为一个双向迭代器和事先他们线性时间。 我还没 ..
发布时间:2015-11-30 14:05:13 C/C++开发

我怎么能否定在C ++(STL)函子?

我有一些功能找到一个值: 结构查找predicate { 查找predicate(常量SOMETYPE& T公司):_T(T){ } 布尔运算符()(SOMETYPE& T公司){ 返回牛逼== _t; } 私人: 常量SOMETYPE和放大器; _t; }; 布尔的containsValue(标准::矢量< SOM ..
发布时间:2015-11-30 14:04:03 C/C++开发