作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我需要在 std::vector 中找到一个元素位置,以使用它来引用 另一个 vector 中的元素:
int find( const vector<type>& where, int searchParameter )
{
for( int i = 0; i < where.size(); i++ ) {
if( conditionMet( where[i], searchParameter ) ) {
return i;
}
}
return -1;
}
// caller:
const int position = find( firstVector, parameter );
if( position != -1 ) {
doAction( secondVector[position] );
}
然而 vector::size()
返回 size_t
对应于一个不能直接存储 的
。当使用 unsigned
整数类型- 1size_t
而不是 int
作为索引时,如何表示在 vector 中找不到元素?
最佳答案
查看为这个问题提供的答案:Invalid value for size_t? .您也可以使用 std::find_if 和 std::distance 来获取索引。
std::vector<type>::iterator iter = std::find_if(vec.begin(), vec.end(), comparisonFunc);
size_t index = std::distance(vec.begin(), iter);
if(index == vec.size())
{
//invalid
}
关于c++ - 如何在 std::vector 中找到元素位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1425349/
我是一名优秀的程序员,十分优秀!