【发布时间】:2023-03-15 10:25:02
【问题描述】:
C 是否有任何类似于 C++ STL 的数据结构实现?特别是关联容器、哈希映射或任何其他具有近似恒定时间检索的结构?
谢谢!
【问题讨论】:
标签: c++ c data-structures stl hashmap
C 是否有任何类似于 C++ STL 的数据结构实现?特别是关联容器、哈希映射或任何其他具有近似恒定时间检索的结构?
谢谢!
【问题讨论】:
标签: c++ c data-structures stl hashmap
C 不能拥有 STL 的“完全等价物”,因为 C 没有模板或类。
您可能对“Glib 合集”库感兴趣:
【讨论】:
C is more versatile than most people give it credit (and it has better encapsulation, if you ask me).我完全同意:)
glib 确实包括 GHashTables,它们基本上是键和值之间的关联——C++ 中的 HashMap。
重要的区别是您必须使用void* 来存储任意数据,因为C 不支持模板或泛型。缺点是编译器无法检查你的代码的有效性,你必须自己确保正确性。
【讨论】:
C 永远不可能有这样的东西,因为它没有任何必需的特性——尤其是模板。
【讨论】:
您实际上可以在 C 中实现自己的。制作一个结构,给它一个指向其父级的指针并实现一个函数,该函数返回一个指向您的结构实例的指针,并且您在 C 中拥有您的类。如果您有时间并且您知道,您可以尽可能多地进行实际操作怎么做。
【讨论】: