Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Hàm set::value_comp() trong C++ STL


Trong bài viết này, chúng ta sẽ thảo luận về set::value_comp() trong C++ STL, cú pháp, cách hoạt động và giá trị trả về.

Set trong C++ STL là gì?

Set trong C++ STL là container chứa các phần tử duy nhất theo thứ tự chung. Set bắt buộc các phần tử duy nhất vì giá trị của phần tử xác định bản thân phần tử. Một khi đã thêm giá trị vào set container thì sau đó không thể sửa đổi, tuy nhiên vẫn có thể xóa hoặc thêm giá trị vào set. Set được sử dụng như cây tìm kiếm nhị phân.

set::value_comp() là gì?

value_comp() là hàm built-in trong C++ STL được khai báo trong header <set>. Hàm trả về bản sao của đối tượng so sánh (comparison object), được set container dùng để so sánh. Mặc định, đối tượng này là toán tử less-than. Là một con trỏ hàm hoặc function object so sánh hai giá trị cùng kiểu trong set và trả về true nếu phần tử đầu nhỏ hơn phần tử thứ hai, ngược lại trả về false. Trong set container, giá trị chính là khóa nên chúng được đặt theo thứ tự đã sắp xếp, do đó value_comp() và key_comp() hoạt động tương tự.

Cú pháp

comparison_object set_name.value_comp();

Tham số

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

Giá trị trả về

Hàm trả về đối tượng so sánh của set container liên kết.

Ví dụ

Input: set<int> myset = {9, 8, 7, 6, 5}; set<int>::value_compare cmp = myset.value_comp() Output: 5 6 7 8 9

Ví dụ hoàn chỉnh

#include <bits/stdc++.h>
using namespace std;
int main() {
    set<int> Set;
    set<int>::value_compare cmp = Set.value_comp();
    for (int i = 0; i <= 10; i++)
        Set.insert(i);
    cout << "elements in set are: ";
    int front = *Set.rbegin();
    set<int>::iterator i = Set.begin();
    do {
        std::cout << *i << " ";
    } while (cmp(*(++i), front));
    std::cout << '\n';
    return 0;
}

Kết quả

elements in set are : 0 1 2 3 4 5 6 7 8 9