hash_map
和 hash_set
header 尚未包含在 C++ 标准中,但它们可作为我最近使用的所有编译器的扩展使用。
我想知道在不牺牲可移植性的情况下,在实际代码中我可以在多大程度上依赖这些。我正在从事需要在许多架构和编译器上运行的工具项目,包括:
- Linux(x86_64、AMD/Intel):GCC、Intel、Portland 编译器
- AIX(强大):GCC、xlC
- Cray XT 系列 (AMD):GCC、Portland、Pathscale 编译器
- IBM 蓝色基因系列(电源):xlC、GCC
- SGI Altix (Itanium): Intel 编译器
- Windows:不是真正的优先事项,但随时提供有用的答案。
我意识到其中一些非常奇特,但这不是重点。您对跨多个平台和编译器的 STL 扩展有何体验?它们无处不在吗? 您会在您的项目中使用它们吗?
最佳答案
我可能会寻找增强等效物并使用它。至少他们有一些来自用户的压力,要求他们独立于平台。我无法想象如果您针对 GCC 和 Intel 编译器提交错误并告诉他们调和他们在 hash_map 实现方式上的分歧会发生什么。充其量你能让他们互相交谈。假设您甚至实现了这一点,那么您只是修复了 Intel 和 GCC 编译器的不同之处。祝大家好运,并在几年内解决问题。
至少有了 boost,您就会知道跨平台的任何差异都由一个组织来解决。
编辑 升压当量显然是 unordered set或 unordered map . (感谢 Head Geek)
关于c++ - hash_map 有多普遍?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/607836/