繁体   English   中英

是否有不属于C ++标准库的STL标头?

[英]Are there any STL headers which are not part of the C++ Standard Library?

我知道某些C ++标准库标头源自STL,例如vector 但是我找不到标准库仍未合并的STL标头的最新列表。 它们存在吗?

PS:我想列出它们,并且想知道是否所有主要的实现都包括它们或从哪里获得它们。

请注意,这是按功能分解的函数,而不是按标头分解的函数,因为它似乎更有用。

如果我们查看SGI的STL文档,则会发现以下内容:

  1. slist已重命名为std::forward_list
  2. bit_vector已由std::vector<bool>的模板规范代替。 这样的实现可以(不是必须)以bit_vector的方式优化空间。
  3. hash_set和朋友现在的拼写就像unordered_set 功能似乎是相同的。 (感谢TC!)
  4. rope不见了。 标准库中没有等效的数据结构。 我找不到与此主题相关的WG21讨论。
  5. 缺少sequence_buffer ,因为它主要用于向后插入rope
  6. 缺少random_samplerandom_sample_n 原因在N3547中讨论:

    在WG21在Sophia-Antipolis会议上进行审议之后,Austern更新了该提案。 除其他更改外,他撤回了[ random_samplerandom_sample_n ]:“ LWG担心他们对标准化可能不够了解。 为TR2提出这些算法可能是适当的” [Aus08b]。 讨论的Wiki分钟同样简短:“ Bjarne觉得理由不足。 PJ担心我们会弄错。 劳伦斯担心人们会自己滚蛋并弄错了。 TR2的理想人选” [LWG08]。 随后对这些拟议算法的投票获得了可靠的LWG共识(10-1,2 abs。),赞成将其将来纳入技术报告(现称为技术规范)

random_sample_n算法的一个版本已添加到Library Fundamentals TS中,并称为std::experimental::sample ,提案N3925的最新版本已于2014-02年采用,但仍未成为标准的一部分,我想我们将在C ++ 17中看到。 (感谢TC!)

  1. lexicographical_compare_3way丢失。 根据N2666,它被认为“不够重要”,无法进行标准化。
  2. power拼写pow ,没有广义的能力, power一样。
  3. identityproject1stproject2ndselect1stselect2nd从未实现标准化。 我找不到关于原因的讨论。
  4. subtractive_rng也丢失。 推测是因为<random>将取代此问题空间。
  5. 缺少或不推荐使用binder1stbinder2ndptr_funpointer_to_unary_functionpointer_to_binary_functionmem_fun (和朋友), unary_composebinary_compose 它们或多或少地被std::bind和朋友所取代。
  6. constructdestroy已移到allocator类中,并且不作为独立函数存在。 (感谢TC!)
  7. temporary_buffer缓冲区丢失。 但是get_temporary_bufferreturn_temporary_buffer可用。 我还无法确切找到原因,但是我遇到的chat不休似乎暗示它在某种程度上从根本上被打破了,许多人都在尝试修复它。 究竟是什么以及如何成为我的谜。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM