zoukankan      html  css  js  c++  java
  • std::less

    std::less

     
    定义于头文件 <functional>
       
    templateclass T >
    struct less;
      (C++14 前)
    templateclass T void >
    struct less;
      (C++14 起)
         

    进行比较的函数对象。调用类型 T 上的 operator< ,除非特化。

    特化

    std::less 的特化为任何指针类型产生严格全序,即使内建的 operator< 不如此。严格全序在 std::less 、 std::greater 、 std::less_equal 和 std::greater_equal 对该指针类型的特化间一致,且亦与对应的内建运算符( < 、 > 、 <= 及 >= )所强加的部分顺序一致。

    若特化 std::less<void> 的函数调用运算符调用内建运算符比较指针,则它产生严格全序,即使内建的 operator<不如此。此严格全序在特化 std::less<void> 、 std::greater<void> 、 std::less_equal<void> 和 std::greater_equal<void> 间一致,亦与对应的内建运算符所强加的部分顺序一致。

    (C++14 起)

    标准库提供 std::less 在不指定 T 时的特化,使得参数类型和返回类型留待推导。

    实现 < y 并推导参数和返回类型的函数对象 
    (类模板特化)
    (C++14 起)

    成员类型

     
    类型 定义
    result_type(C++17 中弃用) bool
    first_argument_type(C++17 中弃用) T
    second_argument_type(C++17 中弃用) T

    成员函数

    operator()
    检查第一参数是否小于第二个 
    (公开成员函数)

    std::less::operator()

    bool operator()const T& lhs, const T& rhs const;
      (C++14 前)
    constexpr bool operator()const T& lhs, const T& rhs const;
      (C++14 起)
         

    检查 lhs 是否小于 rhs 。

    参数

    lhs, rhs - 要比较的值

    返回值

    若 lhs < rhs 则为 true ,否则为 false 。

    异常

    (无)

    可能的实现

    constexpr bool operator()(const T &lhs, const T &rhs) const 
    {
        return lhs < rhs;
    }

    示例

     1 #include <functional>
     2 #include <iostream>
     3  
     4 template <typename A, typename B, typename U = std::less<int>>
     5 bool f(A a, B b, U u = U())
     6 {
     7 return u(a, b);
     8 }
     9  
    10 int main()
    11 {
    12 std::cout << std::boolalpha;
    13 std::cout << f(5, 20) << '
    ';
    14 std::cout << f(100, 10) << '
    ';
    15

    输出:

    true
    false



    以上是在网上查的std::less用法。实际使用时,比如

    std::map<uint64_t,Eigen::Vector2i, std::less<uint64_t>     

    这里第三个参数的作用为,定义map中key值的排序规则,这里即为按<排序。

  • 相关阅读:
    StackOverFlow 最有影响力的IT书箱 [Share]
    Principles of Distributed Computing [Share]
    C/C++ 命令行参数
    函数指针
    coursera-北大-计算概论【已完成】
    有关宏定义一题
    blog.163.com 崩溃以后~
    一步步学习SPD2010--第十一章节--处理母版页
    一步步学习SPD2010--第十章节--SP网站品牌化(12)--关键点
    一步步学习SPD2010--第十章节--SP网站品牌化(11)--使用CSS报表
  • 原文地址:https://www.cnblogs.com/ettie999/p/8664013.html
Copyright © 2011-2022 走看看