在C中查找向量的最小元素

前端之家收集整理的这篇文章主要介绍了在C中查找向量的最小元素前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在C中找到向量的最小元素.我希望返回最低元素的值和向量中索引的位置.这是我尝试过的,
auto minIt = std::min_element(vec.begin(),vec.end());
    auto minElement = *minIt;
       std::cout << "\nMinIT " << &minIt << " while minElement is " << minElement << "\n";

这将返回以下内容,

MinIT 8152610 while minElement is 8152610

如何获得vec(i)的索引i,其中该值为?

解决方法

std :: min_element的返回是一个迭代器,你通过使用auto来混淆它.

您可以使用向量来获取它的位置

std :: distance(vec.begin(),std :: min_element(vec.begin(),vec.end()));

这更像是“C标准库” – 而不是通用的

std :: min_element(vec.begin(),vec.end()) – vec.begin();

虽然对任何一种方式的优点都存在意见分歧.见What is the most effective way to get the index of an iterator of an std::vector?

进一步参考:http://en.cppreference.com/w/cpp/algorithm/min_elementhttp://en.cppreference.com/w/cpp/iterator/distance

猜你在找的C&C++相关文章