我试图理解这行代码
vector<int>::iterator it = find(list_vector.begin(), list_vector.end(), 5)
我vector<int> list_vector;
事先声明的地方。
5号是做什么的?它返回什么?如果它可以在开头和结尾找到它,它会返回 5 吗?如果我想做一个 if 语句,并且我想查找数字 10 是否在语句中(如果是,则返回 true)我将如何去做呢?
vector<int>::iterator it = find(list_vector.begin(), list_vector.end(), 5)
std::find
在其前两个参数定义的范围内搜索。它返回一个迭代器,指向匹配的第一个元素。如果没有元素匹配,则返回其第二个参数。
list_vector.begin()
返回一个指向 的第一个元素的迭代器list_vector
。
list_vector.end()
返回一个迭代器,它指向 的最后一个元素之外的一个元素list_vector
。
5
是搜索的目标。find()
将查找具有 value 的元素5
。
如果您想确定 10 是否存在于向量中的任何位置,请执行以下操作:
if(std::find(list_vector.begin(), list_vector.end(), 10) == list_vector.end())
std::cout << "No 10, bummer\n";
else
std::cout << "I found a 10!\n";
或者,如果您想同时确定 10 是否存在并确定其位置:
std::vector<int>::iterator it = std::find(list_vector.begin(), list_vector.end(), 10);
if(it == list_vector.end())
std::cout << "No 10\n";
else
std::cout << "Look what I found: " << *it << "\n";