gpt4 book ai didi

c++ - 如何在 std::vector 中找到元素位置?

转载 作者:IT老高 更新时间:2023-10-28 12:33:58 35 4
gpt4 key购买 nike

我需要在 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 整数类型- 1。当使用 size_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/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com