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

multiset cbegin () và cend () hàm 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à các ví dụ của hàm multiset ::cbegin () và multiset ::cend () 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 bộ. Sự khác biệt chính giữa tập hợp và tập hợp nhiều khóa là tập hợp có các khóa riêng biệt, nghĩa là không có hai khóa nào giống nhau, trong tập hợp nhiều khóa có thể có cùng giá trị khóa.

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

Multiset ::cbegin () là gì?

Hàm multiset ::cbegin () là một hàm có sẵn trong C ++ STL, được định nghĩa trong tệp tiêu đề . cbegin () có nghĩa là hàm bắt đầu không đổi, có nghĩa là hàm này trả về trình lặp hằng trỏ đến đầu của vùng chứa nhiều tập.

Trình lặp hằng số chỉ có thể được sử dụng để lặp lại qua vùng chứa nhiều tập, điều này không thể thực hiện thay đổi trong vùng chứa nhiều tập.

Cú pháp

ms_name.cbegin();

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 không đổi đang trỏ đến phần tử đầu tiên của vùng chứa.

Ví dụ

Đầu vào

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

Đầu ra

1

Ví dụ

#include <bits/stdc++.h>
using namespace std;
int main() {
   int arr[] = {10, 20, 30, 40, 50, 60};
   multiset<int> check(arr, arr + 6);
   cout<<"First element fetched using cbegin() function: "<<*(check.cbegin()) << endl;
   for(auto i = check.cbegin(); i!= check.cend(); i++)
      cout << *i << " ";
   return 0;
}

Đầu ra

First element fetched using cbegin() function: 10
10 20 30 40 50 60

Multiset ::cend () là gì?

Hàm multiset ::cend () là một hàm có sẵn trong C ++ STL, được định nghĩa trong tệp tiêu đề . cend () có nghĩa là hàm kết thúc không đổi, có nghĩa là hàm này trả về trình lặp hằng trỏ đến phần tử cuối cùng của vùng chứa nhiều tập hợp.

Trình lặp hằng số chỉ có thể được sử dụng để lặp lại qua vùng chứa nhiều tập, điều này không thể thực hiện thay đổi trong vùng chứa nhiều tập.

Cú pháp

ms_name.cend();

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 không đổi đang trỏ đến phần tử ở phía sau phần tử cuối cùng của vùng chứa.

Ví dụ

Đầu vào

std::multiset<int&t; mymultiset = {1, 2, 2, 3, 4};
mymultiset.cend();

Đầu ra

error

Ví dụ

#include <bits/stdc++.h>
using namespace std;
int main() {
   int arr[] = {10, 20, 30, 40, 50, 60};
   multiset<int> check(arr, arr + 6);
   cout<<"Elements in the list are: ";
   for(auto i = check.cbegin(); i!= check.cend(); i++)
      cout << *i << " ";
   return 0;
}

Đầu ra

Elements in the list are: 10 20 30 40 50 60