我必须搜索一个进程表,它由在给定的一组IP地址上运行的进程的名称填充。 目前我在C++中使用多进程映射,进程名称作为键值和IP地址。 有没有其他有效的数据结构可以完成相同的任务。 也可以通过使用pthreads获得任何类型的并行性?如果有的话,任何人都可以将我指向正确的方向什么类型的数据结构可以有效地搜索进程表
回答
您不需要并行访问数千个条目的RAM中的数据结构。你可以锁定它(确保当时只有一个进程/线程访问它),并确保访问足够了。 Multimap没问题。哈希映射虽然会更好。
什么是您的表的典型查询?
尝试使用散列表,它可以更快的大表。
如何存储名称和IP? UTF,字符串,char *?叶作为uint32或字符串?
对于具有大量读取查询的只读结构,您可以从多个线程中受益。
UPD:使用std::unordered_multimap
从#include <tr1/unordered_map>
根据表的大小,你会发现一个哈希表比multimap
容器(与二叉树实现)更有效。
hash_multimap数据结构实现了散列表STL容器,并且可能对您有用。
是散列表可用在GNU编译器或Linux下? – gunjit 2010-02-07 04:58:49
它的C++ stdlib,这意味着它可以在标准C++库所在的地方使用。这实际上意味着所有符合C++标准的编译器。 – batbrat 2010-02-07 05:17:03
散列图不是C++的标准(在1998和2003版本中)。它们将被包含在下一个C++标准C++ 0x中。 GCC在它的libstdC++类名unordered_multimap中有一个pre-standard tr1的实现。还有非标准的ext变量:'hash_multimap' – osgx 2010-02-07 05:32:02
- 1. 什么是REBOL结构!数据类型?
- 2. 可以构建什么类型结构的绑定工作,
- 3. 以树结构搜索JSON数据
- 4. Trie数据结构和Java中的有效搜索
- 5. deleteMin和按键操作搜索的有效数据结构
- 6. 是否有可排序和可搜索的Python数据结构?
- 7. 什么是存储表格数据结构的最佳类型?
- 8. 这称为什么类型的数据库表结构?
- 9. 搜索三数据结构
- 10. 什么类型的NoSQL数据库可以更好地插入非结构化数据?
- 11. Python数据类型,它是什么样的数据结构?
- 12. 按字母顺序搜索的数据结构是什么?
- 13. 线段搜索的最佳数据结构是什么?
- 14. 什么是快速字典搜索的最佳数据结构?
- 15. 什么类型的数据可以类类型存储?
- 16. 效率:使用什么数据结构...?
- 17. 什么都可以使用数据结构来表示
- 18. 什么数据结构用于范围搜索?
- 19. 如何有效地搜索数组以填充表单域?
- 20. 有什么办法可以搜索不被ack识别的文件类型?
- 21. 混合类型的Matlab数据结构 - 什么是时间+空间高效?
- 22. 为什么没有可以是int或false的数据类型?
- 23. 有什么方法可以用来构建领域结构以及数据?
- 24. 有没有可以快速合并的地图数据结构?
- 25. 如何有效地检索给定以下型号的数据
- 26. 为什么没有搜索引擎可以搜索〜符号?
- 27. 数据包:有效地表示不同数据包类型
- 28. Umbraco数据类型。检索可能的数据类型列表。
- 29. 什么是android SearchView的搜索类型?
- 30. 搜索引擎的数据结构?
名字存储为字符串 – gunjit 2010-02-07 04:50:14
和典型查询发现是某个进程正在运行或不..如果运行报告IP地址 – gunjit 2010-02-07 04:50:51
使用EXT /的hash_map文件和类__gnu_cxx :: hash_multimap在GCC 4.1和更早 – osgx 2010-02-07 05:11:04