我有一个矢量数组a = {1,12,12,6,5}。如果我创建一个最大堆,它将返回12作为第一个元素。我怎么知道返回的12是数组a的第2个或第3个元素?我需要返回元素的索引。感谢。
答案 0 :(得分:2)
创建一个std::pair<int, int>
数组,其中first
元素是实际值,second
是初始数组中的索引。然后,在此数组上创建一个堆,并使用maxHeapElement.second
获取顶部元素的元素索引。
但请记住,它会始终显示相同值的最右边元素,因为std::pair
被比较为词典。