Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/127.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 什么类型的数据结构可以有效地搜索流程表_C++_Linux_Data Structures - Fatal编程技术网

C++ 什么类型的数据结构可以有效地搜索流程表

C++ 什么类型的数据结构可以有效地搜索流程表,c++,linux,data-structures,C++,Linux,Data Structures,我必须搜索一个进程表,该表由一组给定ip地址上运行的进程的名称填充。 当前我在C++中使用MultuMaPS,以进程名为关键字,IP地址作为值。 有没有其他有效的数据结构可以完成同样的任务。 我还可以通过使用pthreads获得任何类型的并行性吗?如果是这样的话,谁能给我指出一个正确的方向您不需要并行性来访问RAM中数千个条目的数据结构。您可以锁定它(确保一次只有一个进程/线程访问它),并确保访问足够。多重映射是可以的。不过hashmap会更好。对表的典型查询是什么 尝试使用hashmap,它可

我必须搜索一个进程表,该表由一组给定ip地址上运行的进程的名称填充。 当前我在C++中使用MultuMaPS,以进程名为关键字,IP地址作为值。 有没有其他有效的数据结构可以完成同样的任务。
我还可以通过使用pthreads获得任何类型的并行性吗?如果是这样的话,谁能给我指出一个正确的方向

您不需要并行性来访问RAM中数千个条目的数据结构。您可以锁定它(确保一次只有一个进程/线程访问它),并确保访问足够。多重映射是可以的。不过hashmap会更好。

对表的典型查询是什么

尝试使用hashmap,它可以更快地用于大型表

如何存储名称和IP?UTF,字符串,字符*?Ip作为uint32还是字符串

对于具有大量读取查询的只读结构,您可以从多个线程中获益


upd:使用
std::unordered_multimap
from
#include

根据表的大小,您可能会发现哈希表比
multimap
容器(使用平衡二叉树实现)更有效


数据结构实现了一个哈希表STL容器,可能对您有用。

典型的查询是查找某个进程是否正在运行。。如果运行报告IP地址使用GXC 4.1和EXT在GCC 4.4和新GCC(例如,4.4)中使用的STD:GHUUXCX::HASHMultIMAP:ST1: IMPLI/unOrdEDIDMAP文件“无序”的多MULTAP(代码)> Tr1/OrdEdEdEXMAP/< COD>不Tr1IIMPL,SRYRY是GNU编译器或Linux下可用的HASMAP,它是C++ STDLIB,意思是它在标准C++库的任何地方都是可用的。这意味着实际上所有符合C++标准的编译器都不适合于C++(在1998和2003的修订版中)。它们将包含在下一个C++标准C++ 0x中。GCC在其libstdc++中实现了预标准tr1,类名
unordered\u multimap
。还有非标准的ext变量:
hash\u multimap
是的,它给出了很多警告信息。。。我还检查了backward_warning.h中的替换头文件,但它仍然在编译时发出警告。问题是我无法提交生成警告的代码有没有办法消除警告你有什么gcc?使用tr1\u impl/unordered\u映射中的std::unordered\u多重映射