ベクトルとイテレータの基本的な理解があります。しかし、以下のコード スニペットの出力を理解する上で問題に直面しています。
具体的には、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;
}