template <class RandomAccessIterator> RandomAccessIterator is_heap_until( RandomAccessIterator xFirst, RandomAccessIterator xLast );
#include <algorithm>
template <class RandomAccessIterator, class BinaryPred> RandomAccessIterator is_heap_until( RandomAccessIterator xFirst, RandomAccessIterator xLast, BinaryPred xComp );
#include <iostream> #include <vector> #include <algorithm> int main() { using namespace std; // Create a vector instance vector<int> qV; for (int i = 0; i < 10; i += 2) { qV.push_back(20 -i); } vector<int>::iterator qEndOfHeap; vector<int>::iterator qIter; cout << "Vector: "; for (qIter = qV.begin(); qIter != qV.end(); ++qIter) { cout << *qIter << " "; } cout << endl; // Find the end of the heap qEndOfHeap = is_heap_until(qV.begin(), qV.end()); cout << "Heap: "; for (qIter = qV.begin(); qIter != qEndOfHeap; ++qIter) { cout << *qIter << " "; } cout << endl << "After Heap: "; for (qIter = qEndOfHeap; qIter != qV.end(); ++qIter) { cout << *qIter << " "; } cout << endl << endl; // Reverse the vector reverse(qV.begin(), qV.end()); cout << "Vector: "; for (qIter = qV.begin(); qIter != qV.end(); ++qIter) { cout << *qIter << " "; } cout << endl; // Find the end of the heap qEndOfHeap = is_heap_until(qV.begin(), qV.end()); cout << "Heap: "; for (qIter = qV.begin(); qIter != qEndOfHeap; ++qIter) { cout << *qIter << " "; } cout << endl << "After Heap: "; for (qIter = qEndOfHeap; qIter != qV.end(); ++qIter) { cout << *qIter << " "; } cout << endl; // Keep the window open cin.get(); return 0; }
© 20072024 XoaX.net LLC. All rights reserved.