草庐IT

STL-Like

全部标签

c++ - 使用 C++ STL 中定义的堆栈

#includeusingnamespacestd;intmain(){stacks;inti;for(i=0;i上面的代码有什么问题吗?错误:Infunctionintmain():aggregatevalueusedwhereanintegerwasexpected 最佳答案 stack::pop是一个void函数,它只是丢弃堆栈中的顶部元素,以获取您想要使用的值stack::top.之所以如此是因为exceptionsafetyreasons(如果返回的对象在其复制构造函数中抛出异常会怎样?)。

c++ - 有没有不能在STL中使用的c++类?

就想出这个问题。有什么提示吗? 最佳答案 无法复制的类(class)。STL容器要求对象是可复制的,因为容器拥有该对象的拷贝,并且需要能够移动它。 关于c++-有没有不能在STL中使用的c++类?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2467690/

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++ - 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++ - STL 映射到通用 vector C++

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

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

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

c++ - 是否有像管道一样工作的 C++ STL 类?

在抽象术语中,管道是一种具有破坏性读取的流/FIFO样式容器。它有一个read()方法,可以一次复制所有数据block,并且可以像get和put一样处理单个字节。但是,当read或get返回时,从管道复制出的数据将从管道的内部缓冲区中删除-与文件或任何其他容器类型不同。大多数(全部?)STL容器不提供类似的read()到缓冲区命令。是否有带有pop_many()成员的fifo容器类型?stringstream是我能想到的最接近的东西,因为它维护一个内部读取指针,并且future的读取将阻塞,直到流再次填满。从API的角度来看,容器是空的,但使用的数据必须手动进行垃圾收集。在C++中是否

适合在动态有序列表中查找第 n 个元素的 C++ STL 容器?

使用像AVL或Red-Black-Tree这样的平衡BST,我们可以轻松维护一组值:插入/删除/查询给定值。计算小于/大于给定值的元素。排序后找到秩为k的元素。以上所有内容都可以在O(logN)复杂度中归档。我的问题是,是否有任何STL容器以相同的复杂度支持上述所有3个操作?我知道STLset/multiset可用于1和2。我检查了基于_Rb_tree的容器map/set/multiset,但没有一个提供对3的支持。是否有子类化ext/rb_tree的方法来解决这个问题? 最佳答案 您要查找的数据结构是orderstatistict