gpt4 book ai didi

c++ - std::map 的轻量级 STL 替代品

转载 作者:太空狗 更新时间:2023-10-29 20:40:18 28 4
gpt4 key购买 nike

我正在嵌入式系统上编写应用程序。我需要某种类型的关联容器才能访问基于字符串的特定指针。目前我正在使用 map (即 std::map<char*, SomeType*, CustomComparator> )。我使用 char* 作为键类型,因为我正在与必须支持 std::string 的其他库通信,我不想继续来回转换。
但是我遇到了一个意想不到的问题。 std::map 的每个实例(即新类型)在生成的二进制文件中占用大约 10Kb(没有优化,用于调试目的)。因为我限制了大约 500Kb 的 ROM,而且我可能需要几十个,这是一个非常明显的缺点(我想在实际硬件上进行调试,如果程序不适合我就不能) .如果可能的话,我希望能够以对数时间访问这些项目。我不想求助于使用数组并循环遍历每个项目,直到找到我正在寻找的项目。插入不必很快,因为那只在启动期间完成。删除仅在关机期间执行,因此它们也不是问题。
有没有人有我可以使用的替代想法(最好是 STL)?
注意:我仅限于 C++03。

最佳答案

明显的解决方案可能是使用 std::map<const char *, void *, CustomComparator>在引擎盖下并使用内联函数在模板接口(interface)下包装类型转换。那应该消除生成不同类型的 std::map对于每种不同的指针类型。

关于c++ - std::map 的轻量级 STL 替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24661882/

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