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()
的文档。我投票将这个问题作为离题题来结束,因为通过阅读文档,它的答案微不足道。