我正在处理不应弹出两次的数据。如果是,它应该检测到它并调用一个处理它的函数。
目前,我正在将一些数据推送到一个向量,在插入之前,它应该检查数据是否已经包含在该向量中。目前,这不是很有效,例如
for (int i = 0; i < myVector.size() ; i++)
{
if ( myVector[i] == data )
{
// invoke function
return false;
}
}
我知道 set
是一种特殊的向量,它只允许唯一的数据。
是否有另一种方法来检测添加(或至少尝试添加)重复数据到 set
?
原文由 Darlyn 发布,翻译遵循 CC BY-SA 4.0 许可协议
首先让我们明确一点,
set
不是一种特殊的vector
。它是一种与向量正交的容器,恰好可以防止重复。您可以通过检查
insert
的返回值来检测重复项: