如何在c ++中找到堆中的特定索引?

时间:2014-01-18 20:14:01

标签: c++

我有一个矢量数组a = {1,12,12,6,5}。如果我创建一个最大堆,它将返回12作为第一个元素。我怎么知道返回的12是数组a的第2个或第3个元素?我需要返回元素的索引。感谢。

1 个答案:

答案 0 :(得分:2)

创建一个std::pair<int, int>数组,其中first元素是实际值,second是初始数组中的索引。然后,在此数组上创建一个堆,并使用maxHeapElement.second获取顶部元素的元素索引。

但请记住,它会始终显示相同值的最右边元素,因为std::pair被比较为词典。