我有两个包含数据的数据结构。
- 一个是 vector
std::vector<int> presentStudents
而另一个是一个 -
char
数组char cAllowedStudents[256];
现在我必须比较这两个,以便检查 vector
中的每个元素针对 array
这样 vector 中的所有元素都应该出现在数组中,否则我将返回 false
如果 vector 中有一个元素不属于数组。
我想知道最有效和最简单的解决方案。我可以转换我的 int vector
进入 char array
然后一一比较,但那将是一个冗长的操作。有没有更好的方法来实现这一点?
最佳答案
我建议您使用 HashMap ( std::unordered_map )。将char数组的所有元素存储在hash map中。
然后简单地依次检查 vector 中的每个元素是否存在于 map 中 O(1)。
Total time complexity O(N), extra space complexity O(N).
请注意,您必须在编译器中启用 C++11。
关于c++ - 将 vector 中的元素与数组中的元素进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24134221/