我正在处理不应弹出两次的数据。如果是这样,它应该检测到它并调用处理该问题的函数。

目前,我正在将一些数据推送到 vector 中,并且在插入之前,它应该检查数据是否已包含在 vector 中。目前,这还不是很有效,例如

for (int i = 0; i < myVector.size() ; i++)
{
  if ( myVector[i] == data )
  {
             // invoke function
             return false;
  }
}

我知道set是一种特殊的 vector ,仅允许唯一的数据。

还有另一种方法来检测重复数据(或至少尝试将其添加到set)吗?

最佳答案

首先让我们清楚一点,set不是一种特殊的vector。这是一种与 vector 正交的容器,可以防止重复。

您可以通过检查insert的返回值来检测重复项:

if(my_set.insert("value").second == false) { do_something_for_duplicate(); }

关于c++ - 用set检测重复项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36135653/

10-10 21:22