Stl for newbies điêu xuân mạnh d10cn6 ptit 33

  • No School
  • AA 1
  • 43

This preview shows page 33 - 36 out of 43 pages.

STL for newbies – Điêu Xuân Mạnh – D10CN6 PTIT 33 template <class RandomAccessIterator, class Compare> void sort_heap ( RandomAccessIterator first, RandomAccessIterator last, Compare comp ); Ý nghĩa: - Sắp xếp lại các phần tử của heap (không phải theo độ ưu tiên mà là theo thứ tự các phần tử - giống như săp xếp thông thường). Phép toán so sánh của đoạn phần tử mặc định là toán tử ‘<’ trong dạng 1, hoặc là ‘comp’ trong dạng 2. Tham số: - first, last: giống như trong hàm “sort” - comp: giống như trong hàm “sort” Ví dụ: // range heap example #include <iostream> #include <algorithm> #include <vector> using namespace std; int main () { int myints[] = {10,20,30,5,15}; vector< int > v(myints,myints+5); vector< int >::iterator it; make_heap (v.begin(),v.end()); cout << "initial max heap : " << v.front() << endl; pop_heap (v.begin(),v.end()); v.pop_back(); cout << "max heap after pop : " << v.front() << endl; v.push_back(99); push_heap (v.begin(),v.end()); cout << "max heap after push: " << v.front() << endl; sort_heap (v.begin(),v.end()); cout << "final sorted range :" ; for ( unsigned i=0; i<v.size(); i++) cout << " " << v[i]; cout << endl; return 0; } Output: initial max heap : 30 max heap after pop : 20 max heap after push: 99 final sorted range : 5 10 15 20 99 Độ phức tạp: Khoảng NlogN (với N = last – first) 8. Min / Max: 8.1. min: Dạng 1: template <class T> const T& min ( const T& a, const T& b ); Dạng 2:
Image of page 33
STL for newbies – Điêu Xuân Mạnh – D10CN6 PTIT 34 template <class T, class Compare> const T& min ( const T& a, const T& b, Compare comp ); Ý nghĩa: - Trả về phần tử nhỏ hơn trong hai phần tử. Nếu hai phần tử bằng nhau, trả về phần tử a. Phép toán so sánh của đoạn phần tử mặc định là toán tử ‘<’ trong dạng 1, hoặc là ‘comp’ trong dạng 2. Tham số: - a,b: hai phần tử so sánh - comp: giống như trong hàm “sort” Ví dụ: // min example #include <iostream> #include <algorithm> using namespace std; int main () { cout << "min(1,2)==" << min(1,2) << endl; cout << "min(2,1)==" << min(2,1) << endl; cout << "min('a','z')==" << min( 'a' , 'z' ) << endl; cout << "min(3.14,2.72)==" << min(3.14,2.72) << endl; return 0; } Output: min(1,2)==1 min(2,1)==1 min('a','z')==a min(3.14,2.72)==2.72 8.2. max: Dạng 1: template <class T> const T& max ( const T& a, const T& b ); Dạng 2: template <class T, class Compare> const T& max ( const T& a, const T& b, Compare comp ); Ý nghĩa: - Trả về phần tử lớn hơn trong hai phần tử. Nếu hai phần tử bằng nhau, trả về phần tử a. Phép toán so sánh của đoạn phần tử mặc định là toán tử ‘<’ trong dạng 1, hoặc là ‘comp’ trong dạng 2. Tham số: - a,b: hai phần tử so sánh - comp: giống như trong hàm “sort” Ví dụ: // max example #include <iostream> #include <algorithm> using namespace std; int main () { cout << "max(1,2)==" << max(1,2) << endl; cout << "max(2,1)==" << max(2,1) << endl; cout << "max('a','z')==" << max( 'a' , 'z' ) << endl;
Image of page 34
STL for newbies – Điêu Xuân Mạnh – D10CN6 PTIT 35 cout << "max(3.14,2.73)==" << max(3.14,2.73) << endl; return 0; } Output: max(1,2)==2 max(2,1)==2 max('a','z')==z max(3.14,2.73)==3.14 8.3. next_permutation: Dạng 1: template <class BidirectionalIterator> bool next_permutation (BidirectionalIterator first, BidirectionalIterator last ); Dạng 2: template <class BidirectionalIterator, class Compare> bool next_permutation (BidirectionalIterator first, BidirectionalIterator last, Compare comp); Ý nghĩa: - Biến đổi đoạn phần tử về hoán vị kế tiếp của nó theo thứ tự từ điển. Phép toán so sánh của đoạn phần tử mặc định là toán tử ‘<’ trong dạng 1, hoặc là ‘comp’ trong dạng 2. -
Image of page 35
Image of page 36

You've reached the end of your free preview.

Want to read all 43 pages?

  • Fall '19

What students are saying

  • Left Quote Icon

    As a current student on this bumpy collegiate pathway, I stumbled upon Course Hero, where I can find study resources for nearly all my courses, get online help from tutors 24/7, and even share my old projects, papers, and lecture notes with other students.

    Student Picture

    Kiran Temple University Fox School of Business ‘17, Course Hero Intern

  • Left Quote Icon

    I cannot even describe how much Course Hero helped me this summer. It’s truly become something I can always rely on and help me. In the end, I was not only able to survive summer classes, but I was able to thrive thanks to Course Hero.

    Student Picture

    Dana University of Pennsylvania ‘17, Course Hero Intern

  • Left Quote Icon

    The ability to access any university’s resources through Course Hero proved invaluable in my case. I was behind on Tulane coursework and actually used UCLA’s materials to help me move forward and get everything together on time.

    Student Picture

    Jill Tulane University ‘16, Course Hero Intern

Stuck? We have tutors online 24/7 who can help you get unstuck.
A+ icon
Ask Expert Tutors You can ask You can ask You can ask (will expire )
Answers in as fast as 15 minutes
A+ icon
Ask Expert Tutors