std :: find在旧式阵列上 [英] std::find on a legacy array
本文介绍了std :: find在旧式阵列上的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何在旧数组上执行 std :: find
,而又不创建新的 std :: vector
/ std :: array
来自现有的旧阵列?
How can i conduct std::find
on a legacy array without making a new std::vector
/std::array
from an existing legacy array?
例如:
int ar[N];
if ( std::find(ar, ar + N, value) != &ar[N] ){ /**/ }
& ar [N]
是用于检查什么都没有发现的情况的有效值吗?我可以确定我使用& ar [N]
正确无误,就像 std :: vector :: end()
的类似物吗?
Is &ar[N]
a valid value for checking the situation when nothing is found? Can I be sure i'm doing right using &ar[N]
like an analog of std::vector::end()
?
推荐答案
如果您使用的是c ++ 11,则可以使用:
If you are using c++11, you can use:
int arr[N];
if (std::end(arr) == std::find(std::begin(arr), std::end(arr), value))
{
// ...
}
对于c ++ 98,您可以使用:
For c++98, you can use:
int arr[N];
int *begin = arr;
int *end = begin + N;
if (end == std::find(begin, end, value))
{
// ...
}
这篇关于std :: find在旧式阵列上的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文