3

我试图理解这行代码

vector<int>::iterator it = find(list_vector.begin(), list_vector.end(), 5)

vector<int> list_vector;事先声明的地方。

5号是做什么的?它返回什么?如果它可以在开头和结尾找到它,它会返回 5 吗?如果我想做一个 if 语句,并且我想查找数字 10 是否在语句中(如果是,则返回 true)我将如何去做呢?

4

1 回答 1

10
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";
于 2013-09-26T02:38:30.553 回答