静态分配的数据结构

时间:2010-10-19 11:29:53

标签: c++ data-structures memory-management real-time

我正在研究现有的嵌入式系统(内存有限,Flash有限, ...)带有RT OS。所有数据结构都具有固定大小并已分配 在“编译时”,因此适合RT。没有动态内存 分配。编程语言是C ++,但没有可用的STL。一世 喜欢替换一些特别是LinkedList,Vector和的数据结构 使用一些更通用的变体进行映射。

我到目前为止最接近的是以下框架: http://apfw.sourceforge.net/。最大的挫折恕我直言,是为了一个 LinkedList的大小为N,T的默认构造函数称为N次。一个 更好的类应该静态分配sizeof(T)* N字节。

有没有人知道我的库有上述所有限制吗?

3 个答案:

答案 0 :(得分:1)

如果要修改LinkedList的大小,为什么不创建自己的简单类并通过数组来支持它呢?

答案 1 :(得分:1)

您是否考虑过将自己的分配器(从静态池分配)传递给STL容器?

除此之外,我认为不存在这样的事情。您可能希望查看this related question以开始使用静态向量类。如果这样做,请考虑将其设为开源。

答案 2 :(得分:1)

我可以向您推荐以下内容:

http://www.codeproject.com/KB/recipes/Containers.aspx

这是我写的关于容器类的anoter设计的文章。其中一个最大的优点是分配数据,存储它在容器中是分开的。

例如,您可以在编译时声明静态数据,然后在运行时插入/从列表/树/等中删除它。