gpt4 book ai didi

c++ - std::min_element 获取迭代器的结果

转载 作者:太空宇宙 更新时间:2023-11-04 15:37:47 28 4
gpt4 key购买 nike

std::vector<double> cMinDist;
for (int i = 0; i < mc_4.size(); i++)
{
std::vector<double> temp;
for (int j = 0; j < mc_4.size(); j++)
{
if (j == i)
{
continue;
}
temp.push_back( sqrt(pow(mc_4[i].x - mc_4[j].x,2) + pow(mc_4[i].y - mc_4[j].y,2)));
}

std::vector<double>::iterator result =std::min_element(std::begin(temp),std::end(temp));
cMinDist[i] =result; //error is here

}

很好地得到这个错误

11  IntelliSense: no suitable conversion function from "std::_Vector_iterator<std::_Vector_val<std::_Simple_types<double>>>" to "double" exists 

如何从迭代器中提取结果,而不是索引号只是结果?

我真的需要做这样的事情吗:

int index = std::distance(std::begin(temp), result);
cMinDist[i] =temp[index];

或者有更短的路吗?

最佳答案

解引用迭代器。

cMinDist[i] = *result;

迭代器是指针的概括。因此,它们是以它们为蓝本的。

关于c++ - std::min_element 获取迭代器的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29315444/

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