FreePascal 中 C++ std::vector、std::deque 和 std::map 的等价物

Equivalent of C++ std::vector, std::deque and std::map in FreePascal

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

简而言之:

一般来说,假设存在某种不同语言的直接替代是不合逻辑的。

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

总之,我试试看:

  1. TList 或其通用变体。 (TList<> in Delphi or fgl.Tf*List in unit fgl)
  2. 没有标准类型,我有一个泛型数组class,但它经过优化以避免有序列表的一些问题(插入性能),同时仍然是一个有序类型。我已经把它放在 http://www.stack.nl/~marcov/genlight.pas 上了,也许它会给你一些解决问题的想法。
  3. None还没有。 TDictionary 一旦 http://bugs.freepascal.org/view.php?id=27206 被提交。目前一般使用TAVLTree

packages/fcl-stl中还有一些泛型,包括一个简单的双端队列,我建议你看看。