std::less

 
定义于头文件 <functional>
   
template< class T >
struct less;
  (C++14 前)
template< class 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 时的特化,使得参数类型和返回类型留待推导。

实现 x < 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;
}

示例

 #include <functional>
#include <iostream> template <typename A, typename B, typename U = std::less<int>>
bool f(A a, B b, U u = U())
{
return u(a, b);
} int main()
{
std::cout << std::boolalpha;
std::cout << f(, ) << '\n';
std::cout << f(, ) << '\n';

输出:

true
false


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

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

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

std::less的更多相关文章

  1. 【NX二次开发】NX内部函数,libuifw.dll文件中的内部函数

    本文分为两部分:"带参数的函数"和 "带修饰的函数". 浏览这篇博客前请先阅读: [NX二次开发]NX内部函数,查找内部函数的方法 带参数的函数: void U ...

  2. C++ std::set

    std::set template < class T, // set::key_type/value_type class Compare = less<T>, // set::k ...

  3. C++ std::priority_queue

    std::priority_queue template <class T, class Container = vector<T>, class Compare = less< ...

  4. C++ std::queue

    std::queue template <class T, class Container = deque<T> > class queue; FIFO queue queue ...

  5. C++ std::multimap

    std::multimap template < class Key, // multimap::key_type class T, // multimap::mapped_type class ...

  6. C++ std::map

    std::map template < class Key, // map::key_type class T, // map::mapped_type class Compare = less ...

  7. C++ std::list

    std::list template < class T, class Alloc = allocator > class list; List Lists are sequence co ...

  8. C++ std::forward_list

    std::forward_list template < class T, class Alloc = allocator > class forward_list; Forward li ...

  9. C++ std::deque

    std::deque template < class T, class Alloc = allocator > class deque; Double ended queue deque ...

  10. C++ std::array

    std::array template < class T, size_t N > class array; Code Example #include <iostream> ...

随机推荐

  1. 调用jersey发布的接口webservice,通过HttpPost传递文件

    项目媒体文件之前都是上传到七牛云处理,现在客户为了安全和私密性,准备将移动端拍摄的图片和视频传递到文件服务器,所以就想办法能不能在服务器端发布一个WebService,供移动端调用.刚好之前做的接口都 ...

  2. BZOJ 1614 [Usaco2007 Jan]Telephone Lines架设电话线:spfa + 二分【路径中最大边长最小】

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1614 题意: 给你一个无向图,n个点,m条边. 你需要找出一条从1到n的路径,使得这条路径 ...

  3. PHP ServerPush (推送) 技术的探讨【转】

    随着人们对Web即时应用需求的不断上升,Server Push(推送)技术在聊天.消息提醒尤其是社交网络等方面开始兴起,成为实时应用的数据流核心.这篇日志试图探讨的便是各种适合于PHP的Push的实现 ...

  4. 分享知识-快乐自己:SpringMVC 结合使用拦截器(判断是否用户是否已登陆)

    基础拦截器操作: 拦截器是一种AOP操作实现,那么在AOP之中用户一定不需要去关注拦截器的存在,用户只需要按照自己已经习惯的处理方式进行代码的编写即可. 首先我们先创建一个自定义的拦截器: packa ...

  5. C++中vector使用详细说明

    1. 在C++中的详细说明 vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库. vector之所以被认为是一个容器,是因为它能够像容器一样存放各 ...

  6. JS获取首字母

    function pySegSort(arr, empty) { if (!String.prototype.localeCompare) return null; var letters = &qu ...

  7. listen 75

    Hot Jupiters Smarten Search For Other Earths Scientists are looking for Earth like planets around ot ...

  8. 跨线程send message

    今天同事问了一个问题,说在线程中send message 和直接调用是不是一样,他觉得是一样的,但是线程跟踪却发现处理过程是在接收消息队列完成.回家看到博客园上的一番争论才有些明白,这里贴出来,共勉 ...

  9. Multiple webcams on ZoneMinder

    Monitoring a 3D Printer I have tidied my new workshop and I am starting to play with 3d-printing aga ...

  10. 洛谷 P2962 [USACO09NOV]灯Lights

    题目描述 Bessie and the cows were playing games in the barn, but the power was reset and the lights were ...