我需要设计一个使用哈希表的函数。它基本上将数据插入哈希表并搜索项目。通常,该函数将需要 15 秒到 10 分钟才能执行。我应该在 c++ 中实现这个函数并在 PHP 中使用系统调用,还是应该在 php 中使用关联数组来实现它。哪个会更有效率。各有什么优缺点。
键将是一个字符串。该值将是一个包含两个其他结构的结构。第一个结构基本上包含一个整数数组,第二个结构将包含一个整数对值数组
我需要设计一个使用哈希表的函数。它基本上将数据插入哈希表并搜索项目。通常,该函数将需要 15 秒到 10 分钟才能执行。我应该在 c++ 中实现这个函数并在 PHP 中使用系统调用,还是应该在 php 中使用关联数组来实现它。哪个会更有效率。各有什么优缺点。
键将是一个字符串。该值将是一个包含两个其他结构的结构。第一个结构基本上包含一个整数数组,第二个结构将包含一个整数对值数组
显然,PHP 数组是作为链接哈希表实现的。请参阅如何在 C 级别上实现 PHP 数组?.
无论如何,对于 300 件物品,您使用的容器类型的速度差异可能很小。为了简单起见,如果可能的话,我会留在 PHP 中。
PHP 以其快速的关联数组实现而闻名,但根据我的经验,C++ 仍然更快。几个月前我需要实现快速前缀匹配,哈希表中有数千个前缀和数百万个要匹配的字符串。我同时实现了 PHP 和 C++ 实现,我记得 C++ 的速度要快 10 倍以上,而且消耗的内存要少得多。但当然,它在很大程度上也取决于您的算法,而不仅仅是哈希表的实现。