草庐IT

STL容器之queue

全部标签

c++ - 在游戏编程中,导致性能消耗的特定 C++ 或 STL 功能是什么?

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭12年前。我的问题主要是关于STL而不是C++的其余部分,可以比较(我猜)与C一样快,只要类不是在每个角落都使用。STL是游戏和OGRE3D等引擎的标准,但我想知道如果STL的功能很好用,问题是虽然我真的不知道它们是如何工作的,但我应该首先知道哪些功能会导致严重的问题在使用它们之前先检查pig。我很高兴开始那所游戏编程学校,显然我不可能不使用这些高级功能。

c++ - 使用 STL 编写内存泄漏安全代码应该避免什么?

我使用STL已经有一段时间了,但除了在其他代码中偶尔使用vector之外,主要是为了实现它而实现算法。在我开始更多地使用它之前,我想知道人们在使用STL时常犯的错误是什么——特别是,在使用STL模板以防止我的代码发生内存泄漏时,我应该注意什么? 最佳答案 有效使用STL有很多瓶颈,如果你想了解更多,我推荐这本书"EffectiveSTL"byS.Meyers. 关于c++-使用STL编写内存泄漏安全代码应该避免什么?,我们在StackOverflow上找到一个类似的问题:

c++ - 用于快速名称查找的容器

我想存储字符串并为每个字符串分配一个唯一的ID号(索引就可以)。我只需要每个字符串的一个拷贝,并且需要快速查找。我经常检查表中是否存在该字符串,以至于我注意到性能受到影响。最好的容器是什么?如果字符串存在,我该如何查找? 最佳答案 我建议使用tr1::unordered_map。它是作为HashMap实现的,因此它的查找复杂度为O(1),最坏情况为O(n)。如果您的编译器不支持tr1,还有一个提升实现。#include#include#includeusingnamespacestd;intmain(){tr1::unordered

c++ - C++ 中具有不止一种排序方法的 STL 容器

我正在寻找一个容器,以包含像Employee这样的对象(包含信息:姓名、薪水、电话....)这将有可能一次按名称(a..z)排序,其他时间按薪水排序。最好的方法是什么?我考虑过map,但后来我只定义了1个键将不胜感激每一个想法(请不要太先进!)---更新---我实际上并不需要总是维护2个STL容器,我通常会有1个(假设员工按姓氏排序),根据要求,我不介意制作一个新的STL容器,并推送所有元素再说一遍,只是这次要按薪水排序,所以我可以按那个顺序打印。是否可以创建名称排序的map1和工资排序的map2?如果是这样的话,会喜欢进一步的解释\定义这两个map的例子。我的C++知识很少(我得到的

具有类键和类值的 C++ STL 映射容器

假设我有这样一个类:classPoint{private:intx,y;public:voidsetX(intarg_x){x=arg_x;}voidsety(intarg_y){y=arg_y;}intgetX()const{returnx;}intgety()const{returny;}};现在我想要一张这样的map:mapm;但是我需要第三个参数。我在cplusplus里读到这第三个参数是用来比较什么的,但是没看懂那是什么东西。谁能给我解释一下? 最佳答案 如果您不需要单独的比较函数,您可以使用这样的方法扩展您的类class

c++ - C++中Concurrent Queue + map的实现

我不太擅长数据结构,所以这可能是个很愚蠢的问题。我正在寻找一种方法来实现队列+map的混合行为。我目前正在使用tbb::concurrent_bounded_queue(记录在Intel'sdeveloperzone)来自www.threadingbuildingblocks.org在多线程单生产者单消费者进程中。该队列具有市场数据报价对象,并且流程的生产者端实际上对时间高度敏感,因此我需要的是一个以市场数据标识符(如USDCAD、EURUSD)为键的队列。Value指向(通过unique_ptr)我收到的有关此key的最新市场数据报价。所以,假设我的队列有5个元素对应5个唯一标识符,

c++ - STL 映射到通用 vector C++

我想实现一个映射,将字符串映射到通用vector。我想这样做:std::map>myMap;假设提议的myMap中插入了以下内容,它可以这样使用:vectorintVec=myMap["ListOfInts"];//Worksbecause"ListOfInts"mapstoavectorvectorstringVec=myMap["ListOfStrings"];//Worksbecause"ListOfInts"mapstoavector当我用上述语法声明映射时,编译器心脏病发作了。有人可以提出任何建议吗?或者C++中更好的关联数组选项(建议在提升之前非提升)。

c++ - ADL 和容器函数(开始、结束等)

C++11及更高版本定义自由函数begin,end,empty等命名空间标准。对于大多数容器,这些函数调用相应的成员函数。但对于某些容器(如valarray),这些自由函数被重载(initializer_list没有成员begin())。因此,要遍历任何容器,应使用自由函数,并从std以外的namespace中查找容器的函数。应使用ADL:templatevoidfoo(Cc){usingstd::begin;usingstd::end;usingstd::empty;if(empty(c))throwempty_container();for(autoi=begin(c);i!=en

c++ - 是否有针对大量部分拷贝优化的 C++ STL 关联数据结构版本?

我有一棵大树,它会随着算法的进展而生长。每个节点都包含集合,我想它是作为平衡二叉搜索树实现的。每个节点的集合在该节点创建之后、用于创建该节点的子节点之前应保持固定。不过,我担心复制每一组都非常昂贵。相反,我更希望每个新创建的节点集都利用父节点集的所有适当部分。简而言之,我很高兴复制集合的O(logn)而不是O(n)。是否有提供这种部分复制优化的STL关联数据结构的变体?也许在升压?这样的数据结构在Haskell或OCaML中实现当然是微不足道的,但在C++中需要更多的努力。 最佳答案 我知道建议一种不同的语言通常不会产生什么效果,但

c++ - 是否有大型数据容器的基准?

我目前正在寻找一种方法来处理大型数据集。stxxl似乎是经常推荐的解决方案,然而,在做出决定之前,我需要更多地了解它。问题是STXXL是完全平台中立的吗?还有其他选择吗?有关于大型数据库的基准吗? 最佳答案 1)我个人在Windows和Linux上都试过,没有理由不能在Mac上编译。不过,我不知道您所说的中立是什么意思。2)有TPIE、LEDA-SM等不再开发的替代品。我认为STXXL是您的最佳选择,因为它支持PDM(并行磁盘模型)。 关于c++-是否有大型数据容器的基准?,我们在Sta