Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么我不能在向量中找到元素的索引?_C++ - Fatal编程技术网

C++ 为什么我不能在向量中找到元素的索引?

C++ 为什么我不能在向量中找到元素的索引?,c++,C++,我得到的是max元素,但不是最大元素的索引。元素的索引等于max元素 long int maxi=*max_element(segments.begin(),segments.end()); long int index=*find(segments.begin(),segments.end(),maxi); 试试这个: long int index=find(segments.begin(),segments.end(),maxi) - segments.begin(); Find返回最

我得到的是
max
元素,但不是最大元素的索引。元素的索引等于
max
元素

long int maxi=*max_element(segments.begin(),segments.end());

long int index=*find(segments.begin(),segments.end(),maxi);
试试这个:

long int index=find(segments.begin(),segments.end(),maxi) - segments.begin();

Find返回最大元素的迭代器,对于向量,该迭代器的行为主要类似于指针。您所做的是取消对它的引用(这只会得到它所指向的最大元素)。相反,计算该迭代器和开始迭代器之间的距离以获得索引。

是,因为它是最大元素。阅读
find()
的文档。我投票将这个问题作为离题题来结束,因为通过阅读文档,它的答案微不足道。