我对向量和迭代器有基本的了解。但是我在理解以下代码片段的输出时遇到了问题。
具体来说,我无法找出 make_heap() 函数的功能。它是如何产生输出的:91 67 41 24 59 32 23 13 !
据我所知,堆将如下所示:
91
/ \
67 41
/ \ / \
59 24 32 23
/
13
所以,我期待输出为:91 67 41 59 24 32 23 13
如果有人能帮助我理解 make_heap() 如何生成这样的输出,我将不胜感激。
int main()
{
int aI[] = { 13, 67, 32, 24, 59, 41, 23, 91 };
vector<int> v(aI, aI + 8);
make_heap( v.begin(), v.end() );
vector<int>::iterator it;
for( it = v.begin(); it != v.end(); ++it )
cout << *it << " ";
//Output: 91 67 41 24 59 32 23 13
return 0;
}