gpt4 book ai didi

containers - FreePascal 中 C++ std::vector、std::deque 和 std::map 的等效项

转载 作者:行者123 更新时间:2023-12-03 15:00:53 26 4
gpt4 key购买 nike

ObjectPascal(FreePascal 编译器)中的 std::vectorstd::dequestd::map 等价于什么?

简而言之:

  • (向量)是一个自动调整大小的连续数组

  • (deque) 是一个自动调整大小的数组混合数组,提供接近 O(1) 的随机数访问,同时允许 O(1) 从任一端推送/弹出

  • (map, unordered_map) 是一个关联数组

最佳答案

一般来说,假设某些不同语言有直接替代品是不合逻辑的。

目前,FPC 泛型是旧式 C++ 之类的泛型(基于 token 重放)和 Delphi 更 .NET 风格的泛型(完全声明性,但对于没有自动装箱的语言的值类型的限制更多)的混合。

无论如何,我都会尝试一下:

  1. TList 或其通用变体。 (Delphi 中的 TList<> 或 fgl.Tf*fgl 单元中的 List)
  2. 没有标准类型,我有一个数组泛型类的数组,但它经过优化以避免有序列表的一些问题(插入性能),同时仍然是有序类型。我已经把它放在 http://www.stack.nl/~marcov/genlight.pas ,也许它会给您一些如何解决问题的想法。
  3. 还没有。 T字典一次http://bugs.freepascal.org/view.php?id=27206 promise 。目前通常使用TAVLTree。

packages/fcl-STL 中还有一些泛型,包括简单的双端队列,我建议您查看一下。

关于containers - FreePascal 中 C++ std::vector、std::deque 和 std::map 的等效项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29114762/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com