如何从右到左查找向量中的元素

How to find element in vector from right to left

标准库中有find函数,但它首先从左到右搜索匹配项,如何使用标准库从右到左查找元素?

std::vector<T> values;
std::find(values.begin(), values.end(), x); // searching from left to right

您可以使用 reserse_iterator:

std::find(values.rbegin(), values.rend(), x); 

如果我对你的问题的理解是正确的,那么你试图找到的不是向量中值的 第一个 实例,而是最后一个?

std::find 采用各种迭代器(据我所知),因此您可以使用 rbegin()rend() 来反向迭代向量。即:

std::vector<T> values;
auto it = std::find(values.rbegin(), values.rend(), x); // searches from right to left

当您确认您的 find 操作是否返回任何结果时,您必须小心检查 rend() 而不是 end()