- ベストアンサー
make_heap()が分かりません
#include <iostream> #include <vector> #include <algotithm> using namespace std; int main() { vector<char> v; int i; for(i=0;i<20;i+=2)v.push_back('A'+i); couti<<"sequence before building heap:\n"; for(i=0;i<v.size();i++)cout<<v[i]<<" "; cout<<"\n\n"; make_heap(v.begin(),v.end()); //? couti<<"sequence after building heap:\n"; for(i=0;i<v.size();i++)cout<<v[i]<<" "; cout<<"\n\n"; } の結果が sequence before building heap: A C E G I K M O Q S sequence after building heap: S Q M O I K E A G C ということですが make_heap() の機能がわかりません make_heap() の機能・動作に付いて教えてください (書き間違いがあるかもしれませんので容赦ください)
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (5)
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
回答No.5
- a-kuma
- ベストアンサー率50% (1122/2211)
回答No.4
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
回答No.3
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
回答No.2
- a-kuma
- ベストアンサー率50% (1122/2211)
回答No.1
お礼
#include <iostream> #include <vector> #include <algorithm> using namespace std; void main() { vector<int> v; int i; for(i=0;i<10;i++)v.push_back(i); cout<<"heap(";for(i=0;i<(int)v.size();i++)cout<<v[i]<<" "; cout<<")="; make_heap(v.begin(),v.end()); //? for(i=0;i<(int)v.size();i++)cout<<v[i]<<" "; v[0]=0;v[1]=1;v[2]=2;v[3]=3;v[4]=4;v[5]=5;v[6]=7;v[7]=6;v[8]=8;v[9]=9; cout<<"heap(";for(i=0;i<(int)v.size();i++)cout<<v[i]<<" ";cout<<")="; make_heap(v.begin(),v.end()); //? for(i=0;i<(int)v.size();i++)cout<<v[i]<<" "; } をBorland無償コンパイラでコンパイル実行すると heap(0 1 2 3 4 5 6 7 8 9 )=9 8 6 7 4 5 2 0 3 1 heap(0 1 2 3 4 5 7 6 8 9 )=9 8 7 6 4 5 2 0 3 1 となりますから多分そうでしょう heapの意味がなんとなくわかってきました ありがとうございました