gpt4 book ai didi

c++ - 迭代器指向哪个索引

转载 作者:太空狗 更新时间:2023-10-29 23:53:33 26 4
gpt4 key购买 nike

vector 有一个迭代器。我想知道迭代器指向哪个索引。所以我做了以下但我不确定。

int temp = -1;
std::vector <int> ::iterator f;

for (f=eFace[e].begin(); f!=eFace[e].end(); ++f)
{
if (*f == face)
{
switch (f-eFace[e].begin())
{
case 0:
temp = 5;
break;
case 1:
temp = 3;
break;
case 2:
temp = 4;
break;
case 3:
temp = 1;
break;
case 4:
temp = 2;
break;
case 5:
temp = 0;
break;
default:
throw;
}

break;
}
}

最佳答案

std::vector<int>::size_type index = std::distance (eFace [e].begin(), f);

请注意,如果您在每个循环中都执行它,这可能会很慢。 vector 的另一种选择是:

std::vector<int>::size_type index = f - eFace [e].begin();

这是可行的,因为 vector 使用随机访问迭代器,它需要定义减法,如下面的 Steve Jessop 所指出的。

关于c++ - 迭代器指向哪个索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10349130/

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