📜  在C++ STL中映射value_comp()(1)

📅  最后修改于: 2023-12-03 15:37:34.620000             🧑  作者: Mango

C++中的映射(value_comp)

C++中的STL(map或unordered_map)提供了一个非常有用的函数value_comp()。本文将深入介绍它的作用、用法和示例。

作用

value_comp()函数是STL映射容器的一个成员函数,用于判断两个元素的值是否相等。

用法

value_comp()函数是容器的一个成员函数,因此需要一个容器对象才能调用。它的语法如下所示:

value_compare mymap::value_comp() const;

它返回一个比较器对象value_compare,value_compare是映射容器类型的内部比较器类。

示例

以下是一个使用value_comp()函数的实例:

#include <iostream>
#include <map>

int main() {
    std::map<int, int> mymap{{1, 2}, {2, 4}, {3, 6}, {4, 8}};
    std::map<int, int>::iterator it = mymap.begin();
    std::map<int, int>::iterator it2 = mymap.begin();
    ++it2;

    std::cout << "mymap contains:\n";
    for (; it != mymap.end(); ++it) {
        int key = it->first;
        int value = it->second;
        std::cout << key << " => " << value << '\n';
    }

    std::cout << "\nThe result of comparing value_comp() : " << std::boolalpha << mymap.value_comp()(it, it2) << std::endl;
    return 0;
}

以上代码定义了一个int类型的map,key值为1、2、3和4,value值分别为2、4、6和8。接下来使用迭代器遍历map并打印键值对。最后,使用value_comp()函数比较两个迭代器it和it2,输出结果。

总结

value_comp()函数是STL映射容器非常有用的函数之一,可以用于判断两个元素的值是否相等。需要注意它返回的是比较器对象value_compare,而不是一个bool值。了解value_comp()的使用方法,能够帮助我们更好地理解和使用C++中的映射容器。