Main map charint m map charint iterator it ma1 ma1

  • No School
  • AA 1
  • 43

This preview shows page 17 - 20 out of 43 pages.

main() { map <char,int> m; map <char,int> :: iterator it; m['a']=1; // m={{'a',1}} m.insert(make_pair('b',2)); // m={{'a',1};{'b',2}} m.insert(pair<char,int>('c',3) ); // m={{'a',1};{'b',2};{'c',3}} cout << m['b'] << endl; // In ra 2 m['b']++; // m={{'a',1};{'b',3};{'c',3}} it=m.find('c'); // it point to key 'c' cout << it->first << endl; // In ra 'c' cout << it->second << endl; // In ra 3 m['e']=100; //m={{'a',1};{'b',3};{'c',3};{'e',100}} it=m.lower_bound('d'); // it point to 'e' cout << it->first << endl; // In ra 'e' cout << it->second << endl; // In ra 100 system("pause"); } 11. Multi Map (Ánh xạ): Giống như map nhưng có thể chứa các phần tử có khóa giống nhau, do đó nó khác map ở chỗ không có opearator[].
Image of page 17
STL for newbies – Điêu Xuân Mạnh – D10CN6 PTIT 18 III. STL ALGORITHMS (THƯ VIỆN THUẬT TOÁN): 1. Giới thiệu tổng quan: Thư viện algorithm nằm trong thư viện chuẩn (Standard Template Libarary) của C++, nó được thiết kế để thực hiện các thuật toán cơ bản, các thao tác thuờng sử dụng (như là tìm kiếm, sắp xếp, trộn, chèn, xóa …) trên một khoảng liên tiếp của dãy các phần tử có cùng kiểu dữ liệu. Một khoảng là một dãy các đối tượng có thể truy cập thông qua các biến lặp (iterator) hoặc các con trỏ (pointer). Ví dụ như là một mảng hoặc một số STL container. Các hàm STL Algorithm chia thành 7 loại cơ bản: - Các thao tác không thay đổi đoạn phần tử (Non-modifying sequence operations) - Các thao tác thay đổi đoạn phần tử (Modifying sequence operations) - Sắp xếp (Sorting) - Tím kiếm nhị phân (Binary Search) - Trộn (Merge) - Hàng đợi ưu tiên (Heap) - Min/max Để sử dụng thư viện algorithm bạn cần phải khai báo: #include <algorithm> Sau đây sẽ là phần trình bày chi tiết của mỗi loại. 2. Các thao tác không thay đổi đoạn phần tử: 2.1. for_each: template <class InputIterator, class Function> Function for_each (InputIterator first, InputIterator last, Function f); Ý nghĩa: - Thực hiện hàm ‘f’ cho mỗi phần tử thuộc nửa đoạn [first,last) Tham số: - first, last: biến lặp truy cập ngẫu nhiên đến vị trí đầu và cuối, bao gồm phần tử đầu tiên first và tất cả các phần tử giữa first và last (không có phần tử cuối cùng). - f: hàm duy nhất nhận phần tử trong đoạn làm tham số. Nó có thể là con trỏ đến hàm hoặc đối tượng mà lớp overloads toán tử (). Xem ví dụ để hiểu rõ hơn. Ví dụ: // for_each example #include <iostream> #include <algorithm> #include <vector> using namespace std; void myfunction ( int i) { cout << " " << i; } struct myclass { void operator () ( int i) {cout << " " << i;}
Image of page 18
STL for newbies – Điêu Xuân Mạnh – D10CN6 PTIT 19 } myobject; int main () { vector< int > myvector; myvector.push_back(10); myvector.push_back(20); myvector.push_back(30); cout << "myvector contains:" ; for_each (myvector.begin(), myvector.end(), myfunction); // or: cout << "\nmyvector contains:" ; for_each (myvector.begin(), myvector.end(), myobject); cout << endl; return 0; } Output: myvector contains: 10 20 30 myvector contains: 10 20 30 2.2. find: Dạng: template <class InputIterator, class T> InputIterator find ( InputIterator first, InputIterator last, const T& value ); Ý nghĩa: - Tìm kiếm phần tử. Trả về con trỏ đến phần tử đầu tiên trong đoạn [first,last) mà so sánh bằng ‘value’ , hoặc trả về ‘last’ nếu không tìm thấy. Tham số: - first, last: biến lặp truy cập ngẫu nhiên đến vị trí đầu và cuối, bao gồm phần tử đầu tiên first và tất cả các phần tử giữa first và last (không có phần tử cuối cùng). - value: phần tử tìm kiếm Ví dụ: // find example
Image of page 19
Image of page 20

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