[英]How would I iterate through a matrix using vector.begin() and vector.end()?
[英]working of find(vector.begin(),vector.end(), A[i])==vector.end()
if(find(vector.begin(),vector.end(), A[i])==vector.end())
{
vector.push_back(A[i]);
}
我使用它来不在向量中输入重复的元素。 它实际上是如何工作的。 如果有人可以解释,那就太好了。
std::find()
将一系列迭代器作为输入,并在该范围内搜索给定值。 如果找到该值,则返回该值的迭代器。 如果未找到该值,则返回指定的结束迭代器。 在这种情况下,由于vector.end()
是指定的结束迭代器,如果在vector
中找不到A[i]
值,则返回该值。
保存不能重复的值列表的一种更简单的方法是使用std::set
或std::unordered_set
而不是std::vector
,例如:
#include <set>
std::set<decltype(A)::value_type> s;
...
if (s.insert(A[i]).second) {
// insert successful, was not a duplicate
}
else {
// insert failed, was a duplicate
}
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.