Hơn lớn hơn hoặc bằng khóa dĩ nhiên là

  • No School
  • AA 1
  • 43

This preview shows page 15 - 18 out of 43 pages.

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 multiset. ĐPT O(logN) + số phần tử tìm được. Chương trình Demo: #include <iostream> #include <set> using namespace std; main() { multiset <int> s; multiset <int> :: iterator it; int i; for (i=1;i<=5;i++) s.insert(i*10); // s={10,20,30,40,50} s.insert(30); // s={10,20,30,30,40,50} cout << s.count(30) << endl; // In ra 2 cout << s.count(20) << endl; // In ra 1 s.erase(30); // s={10,20,40,50} /* Duyet set */ for (it=s.begin();it!=s.end();it++) { cout << *it << " "; } // In ra 10 20 40 50 cout << endl; system("pause"); } 10. Map (Ánh xạ):
Image of page 15
STL for newbies – Điêu Xuân Mạnh – D10CN6 PTIT 16 - Map là một loại associative container. Mỗi phần tử của map là sự kết hợp của khóa (key value) và ánh xạ của nó (mapped value). Cũng giống như set, trong map không chứa các khóa mang giá trị giống nhau. - Trong map, các khóa được sử dụng để xác định giá trị các phần tử. Kiểu của khóa và ánh xạ có thể khác nhau. - Và cũng giống như set, các phần tử trong map được sắp xếp theo một trình tự nào đó theo cách so sánh. - Map được cài đặt bằng red-black tree (cây đỏ đen) – một loại cây tìm kiếm nhị phân tự cân bằng. Mỗi phần tử của map lại được cài đặt theo kiểu pair (xem thêm ở thư viện utility ). Khai báo: #include <map> ... map <kiểu_dữ_liệu_1,kiểu_dữ_liệu_2> // kiểu dữ liệu 1 là khóa, kiểu dữ liệu 2 là giá trị của khóa. Sử dụng class so sánh: Dạng 1: struct cmp{ bool operator() (char a,char b) {return a<b;} }; ..... map <char,int,cmp> m; - Truy cập đến giá trị của các phần tử trong map khi sử dụng iterator: Ví dụ ta đang có một iterator là it khai báo cho map thì: (*it).first; // Lấy giá trị của khóa, kiểu_dữ_liệu_1 (*it).second; // Lấy giá trị của giá trị của khóa, kiểu_dữ_liệu_2 (*it) // Lấy giá trị của phần tử mà iterator đang trỏ đến, kiểu pair it->first; // giống như (*it).first it->second; // giống như (*it).second Capacity : - size : trả về kích thước hiện tại của map. ĐPT O(1) - empty : true nếu map rỗng, và ngược lại. ĐPT O(1). Truy cập tới phần tử: - operator [khóa]: Nếu khóa đã có trong map, thì hàm này sẽ trả về giá trị mà khóa ánh xạ đến. Ngược lại, nếu khóa chưa có trong map, thì khi gọi [] nó sẽ thêm vào map khóa đó. ĐPT O(logN) Chỉnh sửa - insert : Chèn phần tử vào map. Chú ý: phần tử chèn vào phải ở kiểu “pair”. ĐPT O(logN). - erase : o xóa theo iterator ĐPT O(logN) o xóa theo khóa: xóa khóa trong map. ĐPT: O(logN). - clear : xóa tất cả set. ĐPT O(n). - swap : đổi 2 set cho nhau. ĐPT O(n). Operations :
Image of page 16
STL for newbies – Điêu Xuân Mạnh – D10CN6 PTIT 17 - find : trả về itarator trỏ đến phần tử cần tìm kiếm. Nếu không tìm thấy iterator trỏ về “end” của map. Đ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 map. Đ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 map. ĐPT O(logN). - count : trả về số lần xuất hiện của khóa trong multiset. ĐPT O(logN) Chương trình demo: #include <iostream> #include <map> #include <vector> using namespace std;
Image of page 17
Image of page 18

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