7

我正在编写一个嵌入式应用程序,不幸的是,我使用的环境目前不支持 C++11。

我需要实现一个哈希/无序映射(std::map出于性能原因,常规不会这样做),但似乎无法找到一种干净的方法。

Boost 不想在没有引入整个库的情况下工作。hash_map即使是来自 SGI的原始 STL 也需要多个标头,并且复制标准库功能,从而导致模棱两可的函数调用。这真是一团糟。

为了便于实施、版本控制、质量控制、V&V 等。我真的需要利用现有标准库并且仅存在于几个头文件中的东西,我可以将它们放在与所有其他源/头文件相同的文件夹中。这样的事情存在吗,还是我没有希望?找了好久,还是空手而归。

非常感谢您的帮助。如有必要,我当然可以进一步澄清。

4

1 回答 1

1

你看过 GNU 的实现吗?在我的 Ubuntu 机器上,unordered_map.h 不包含任何内容。该文件位于

    /usr/include/c++/4.6/bits/unordered_map.h

这大约是 400 行,尽管 /usr/include/c++/4.6/ 中的文件“unordered_map”有更多的标题,但我猜你可以调整那些。

我认为您可以从 GNU.org (?) 找到实现的源代码并自己编译?

于 2012-11-15T01:53:44.267 回答