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