选择合适的数据结构
choose appropriate data structure
我正在实现C++代码,该代码与运行许多硬件辅助数据结构(直接访问表和搜索树)的硬件通信。因此,我需要维护一个本地缓存,在将数据推送到硬件上之前,该缓存将存储数据。
我认为要复制H/W树结构,我可以选择std::map,但直接表(基本上它是作为结果的顺序数组实现的,并允许直接访问查找)呢?
STL中是否有足够接近的类似物来实现这样的结构,或者简单的数组就足够了?
谢谢。
如果您使用的是硬件结构,那么最好使用C struct
s和C数组尽可能精确地模拟这些结构。
这将使您能够尽可能精确地映射硬件结构,并通过简单的memcpy
移动数据。
STL可能不会非常有用,因为它在幕后做了很多事情,而且你无法控制内存布局。这意味着每次对硬件的写入都将涉及到一个复杂的序列化练习,您可能希望避免这个练习。
我相信您正在寻找std::vector
。或者,如果在编译时已知大小,std::array
(从C++11开始)。
C++11有一个无序映射和无序集,它们类似于哈希表。贴图的迭代速度更快,而集合的查找速度更快。
但首先,您应该运行一个探查器,看看您的数据结构是否是降低程序速度的原因
相关文章:
- 链表,反向函数,数据结构
- 如何使用set实现无序数据结构?
- 我们可以将数据永久保存为数据结构吗?
- C++中的可变长度数组/数据结构
- 用于存储由空格分隔的字符串的 C++/C 数据结构
- 通过 NIF 从C++返回自定义数据结构
- 编译器上的策略数据结构不起作用
- 使用选择排序对数组数据结构进行排序,但它不起作用
- 对于这个问题,是否有更好的数据结构和算法选择
- 哪种数据结构和设计用于选择最佳整数集
- 数据结构-选择排序方法
- 使用 QPair 和 QString 选择正确的数据结构
- 用于选择计算机组的数据结构
- 选择合适的数据结构
- 选择一个有效的数据结构来寻找韵律
- 选择合适的FIFO数据结构
- 如何根据c++项目的不同性能要求设计或选择数据结构
- 我应该使用什么数据结构来支持插入、删除和随机选择
- 选择合适的数据结构
- 数据结构/容器选择