我试图理解这行代码
vector<int>::iterator it = find(list_vector.begin(), list_vector.end(), 5)
Run Code Online (Sandbox Code Playgroud)
我vector<int> list_vector;手头宣布的地方.
5做了什么?它返回了什么?如果可以在开头和结尾找到它,它会返回5吗?如果我想创建一个if语句,并且我想查找数字10是否在语句中(如果是,返回true)我将如何进行此操作?
Rob*_*obᵩ 10
vector<int>::iterator it = find(list_vector.begin(), list_vector.end(), 5)
Run Code Online (Sandbox Code Playgroud)
std::find在前两个参数定义的范围内搜索.它返回一个迭代器,指向匹配的第一个元素.如果没有元素匹配,则返回其第二个参数.
list_vector.begin()返回指向第一个元素的迭代器list_vector.
list_vector.end()返回一个迭代器,指向超出最终元素的一个元素list_vector.
5是搜索的目标.find()将寻找具有该值的元素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";
Run Code Online (Sandbox Code Playgroud)
或者,如果您想同时确定是否存在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";
Run Code Online (Sandbox Code Playgroud)