c++ - 将 vector 中的元素与数组中的元素进行比较

标签 c++ arrays visual-c++ vector

我有两个包含数据的数据结构。

  • 一个是 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/

相关文章:

C++ 类 : read value behave as different types

c++ - 随机数生成和并行化 C++/Qt

c++ - A类中的函数指针指向B类中的成员函数

c++ - 从 Microsoft C++ 读取 RSP 寄存器

c# - 从 C# 转换为 C++

c++ - 最近邻搜索的高效实现

php - PHP中 explode 两次的更好方法

php - 按前缀过滤数组的 native 函数

javascript - 如果另一个数组值等于 x,则获取数组值

c++ - MSVC 19 删除继承的构造函数