Clear xóa tất cả set đpt on swap đổi 2 set

  • No School
  • AA 1
  • 43

This preview shows page 13 - 16 out of 43 pages.

- clear : xóa tất cả set. ĐPT O(n). - swap : đổi 2 set cho nhau. ĐPT O(n). Operations : - find : trả về itarator trỏ đến phần tử cần tìm kiếm. Nếu không tìm thấy itarator trỏ về “end” của set. ĐPT O(logN). - lower_bound : trả về iterator đến vị trí phần tử bé nhất mà không bé hơn (lớn hơn hoặc bằng) khóa (dĩ nhiên là theo phép so sánh), nếu không tìm thấy trả về vị trí “end” của set. ĐPT O(logN). - upper_bound: trả về iterator đến vị trí phần tử bé nhất mà lớn hơn khóa, nếu không tìm thấy trả về vị trí “end” của set.. ĐPT O(logN). - count : trả về số lần xuất hiện của khóa trong container. Nhưng trong set, các phần tử chỉ xuất hiện một lần, nên hàm này có ý nghĩa là sẽ return 1 nếu khóa có trong container, và 0 nếu không có. ĐPT O(logN). Chương trình Demo 1: #include <iostream> #include <set> using namespace std; main() { set <int> s; set <int> ::iterator it; s.insert(9); // s={9} s.insert(5); // s={5,9} cout << *s.begin() << endl; //In ra 5 s.insert(1); // s={1,5,9} cout << *s.begin() << endl; // In ra 1 it=s.find(5); if (it==s.end()) cout << "Khong co trong container" << endl; else cout << "Co trong container" << endl; s.erase(it); // s={1,9} s.erase(1); // s={9}
Image of page 13
STL for newbies – Điêu Xuân Mạnh – D10CN6 PTIT 14 s.insert(3); // s={3,9} s.insert(4); // s={3,4,9} it=s.lower_bound(4); if (it==s.end()) cout << "Khong co phan tu nao trong set khong be hon 4" << endl; else cout << "Phan tu be nhat khong be hon 4 la " << *it << endl; // In ra 4 it=s.lower_bound(10); if (it==s.end()) cout << "Khong co phan tu nao trong set khong be hon 10" << endl; else cout << "Phan tu be nhat khong be hon 10 la " << *it << endl; // Khong co ptu nao it=s.upper_bound(4); if (it==s.end()) cout << "Khong co phan tu nao trong set lon hon 4" << endl; else cout << "Phan tu be nhat lon hon 4 la " << *it << endl; // In ra 9 /* Duyet set */ for (it=s.begin();it!=s.end();it++) { cout << *it << " "; } // In ra 3 4 9 cout << endl; system("pause"); } Lưu ý: Nếu bạn muốn sử dụng hàm lower_bound hay upper_bound để tìm phần tử lớn nhất “bé hơn hoặc bằng” hoặc “bé hơn” bạn có thể thay đổi cách so sánh của set để tìm kiếm. Mời bạn xem chương trình sau để rõ hơn: #include <iostream> #include <set> #include <vector> using namespace std; main() { set <int, greater <int> > s; set <int, greater <int> > :: iterator it; // Phép toán so sánh là greater s.insert(1); // s={1} s.insert(2); // s={2,1} s.insert(4); // s={4,2,1} s.insert(9); // s={9,4,2,1} /* Tim phần tử lớn nhất bé hơn hoặc bằng 5 */ it=s.lower_bound(5); cout << *it << endl; // In ra 4 /* Tim phần tử lớn nhất bé hơn 4 */ it=s.upper_bound(4); cout << *it << endl; // In ra 2 system("pause"); } 9. Mutiset (Tập hợp): - Multiset giống như Set nhưng có thể chứa các khóa có giá trị giống nhau.
Image of page 14
STL for newbies – Điêu Xuân Mạnh – D10CN6 PTIT 15 - Khai báo : giống như set. - Các hàm thành viên: Capacity : - size : trả về kích thước hiện tại của multiset. ĐPT O(1) - empty : true nếu multiset rỗng, và ngược lại. ĐPT O(1). Chỉnh sửa: - insert : Chèn phần tử vào set. ĐPT O(logN). - erase : o xóa theo iterator ĐPT O(logN) o xóa theo khóa: xóa tất cả các phần tử bằng khóa trong multiset ĐPT: O(logN) + số phần tử bị xóa. - clear : xóa tất cả set. ĐPT O(n). - swap : đổi 2 set cho nhau. ĐPT O(n). Operations : - find : trả về itarator trỏ đến phần tử cần tìm kiếm. Nếu không tìm thấy itarator trỏ về “end” của set. ĐPT O(logN). Dù trong multiset có nhiều phần tử bằng khóa thì nó cũng chỉ iterator đến một phần tử. - lower_bound : trả về iterator đến vị trí phần tử bé nhất mà không bé
Image of page 15
Image of page 16

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