繁体   English   中英

选择合适的数据结构

[英]choose appropriate data structure

我正在实现与硬件通信的C ++代码,该硬件运行许多硬件辅助的数据结构(直接访问表和搜索树)。 因此,我需要维护一个本地缓存,该缓存将存储数据,然后再将其压入硬件。

我认为要复制硬件树结构,我可以选择std :: map,但是直接表呢(基本上它是作为结果的顺序数组实现的,并允许直接访问查找)?

STL中是否有足够接近的类似物来实现这样的结构或简单的数组就足够了?

谢谢。

如果使用的是硬件结构,则最好使用C struct和C数组尽可能精确地模拟结构。

这将使您能够尽可能精确地映射硬件结构,并使用简单的memcpy来移动数据。

STL可能不会非常有用,因为它在幕后做了很多事情,而且您无法控制内存布局。 这将意味着每次对硬件的写入都将涉及您可能想要避免的复杂序列化练习。

我相信您正在寻找std::vector 或者,如果在编译时知道大小,则为std::array (从C ++ 11开始)。

C ++ 11有一个unordered-mapunordered-set ,它们类似于一个哈希表。 映射的迭代速度更快,而集合的查找速度更快。

但是首先,您应该运行一个探查器,以查看您的数据结构是否会使程序变慢

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM