Computer >> Máy Tính >  >> Lập trình >> C ++

đa bộ hàm begin () và end () trong C ++ STL

Trong bài viết này, chúng ta sẽ thảo luận về cách làm việc, cú pháp và ví dụ của các hàm multiset ::begin () và multiset ::end () trong C ++ STL.

Multiset trong C ++ STL là gì?

Multisets là các vùng chứa tương tự như vùng chứa đã đặt, có nghĩa là chúng lưu trữ các giá trị ở dạng khóa giống như một tập hợp, theo một thứ tự cụ thể.

Trong multiset, các giá trị được xác định là các khóa giống như các tập hợp. Sự khác biệt chính giữa bộ đa hợp và bộ là bộ có các khóa riêng biệt, nghĩa là không có hai khóa nào giống nhau, trong bộ đa hợp có thể có cùng giá trị khóa.

Các khóa nhiều tập hợp được sử dụng để triển khai cây tìm kiếm nhị phân.

Multiset ::begin () là gì?

Hàm multiset ::begin () là một hàm có sẵn trong C ++ STL, được định nghĩa trong tệp tiêu đề .

Hàm này trả về một trình lặp đang trỏ đến phần tử đầu tiên trong vùng chứa nhiều tập hợp.

Vì các vùng chứa nhiều tập hợp lưu trữ các giá trị theo thứ tự tăng dần, nên begin () trỏ đến phần tử là phần tử đầu tiên của vùng chứa theo tiêu chí sắp xếp.

Cú pháp

ms_name.begin();

Tham số

Hàm không chấp nhận tham số.

Giá trị trả về

Hàm này trả về một trình vòng lặp trỏ đến phần tử đầu tiên của vùng chứa nhiều tập được liên kết với nó.

Ví dụ

Input: std::multiset<int> mymultiset = {1, 2, 2, 3, 4};
   mymultiset.begin();
Output: 1

Ví dụ

#include <bits/stdc++.h>
using namespace std;
int main() {
   int arr[] = {2, 4, 1, 3, 8, 5, 6};
   multiset<int> check(arr, arr + 7);
   cout<<"List is : ";
   for (auto i = check.begin(); i != check.end(); i++)
      cout << *i << " ";
   cout<<"\nStarting Element is : "<<*(check.begin());
   return 0;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

List is : 1 2 3 4 5 6 8
Starting Element is : 1

Multiset ::end ()

là gì

Hàm multiset ::end () là một hàm có sẵn trong C ++ STL, được định nghĩa trong tệp tiêu đề .

Hàm này trả về một trình lặp đang trỏ đến vị trí quá khứ đến kết thúc trong vùng điều khiển đa.

Phần tử quá khứ đến kết thúc là phần tử theo sau phần tử cuối cùng của vùng chứa nhiều tập hợp. Tóm lại, nó không trỏ đến bất kỳ phần tử cụ thể nào của vùng chứa nhiều tập hợp. Hàm này thường được sử dụng với begin () để cung cấp phạm vi của vùng chứa nhiều tập hợp.

Cú pháp

ms_name.end();

Tham số

Hàm không chấp nhận tham số.

Giá trị trả về

Hàm này trả về một trình lặp trỏ tới phần tử cuối của vùng chứa nhiều tập được liên kết với nó.

Ví dụ

Input: std::multiset<int> mymultiset = {1, 2, 2, 3, 4};
   for( std::multiset<int>::iterator it=mymultiset.begin(); it!=mymultiset.end(); ++it )
Output: 1 2 2 3 4

Ví dụ

#include <bits/stdc++.h>
using namespace std;
int main() {
   int arr[] = {2, 4, 1, 3, 8, 5, 6};
   multiset<int> check(arr, arr + 7);
   cout<<"List is : ";
   for (auto i = check.begin(); i != check.end(); i++)
      cout << *i << " ";
   return 0;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

List is : 1 2 3 4 5 6 8