首页 > 其他分享 >less 的使用

less 的使用

时间:2022-09-05 22:11:48浏览次数:90  
标签:std less 运算符 https 使用 com 指针

  • 使用 less 替代 < 运算符可以让你的算法更加通用。例如, 当算法作用于无法提供 < 运算符的类型上时,该类型可以通过自定义 less 的重载版本,以继续工作。
  • 当代码会对比较结果是未定义的[1]的指针进行比较时,一定要使用 std::less。C++ 标准规定 std::less 对任何指针类型生成的特化版本都实现严格全序,它保证能够安全的对指针进行比较。

扩展:

C++ Prime 第五版的中文译者曾在书中附注道 “less 的默认实现用的就是 < 运算符[2],所以其并未起到比较有良好定义的作用”。 这是错误的,less 的默认实现使用 < 运算符是因为指针的主流[3]实现是严格全序的(例如,指针被实现为存储连续虚拟地址空间内的地址),因此其可以直接使用 < 运算符比较。而那些没有这样实现的平台(例如,指针存储的内容不完全是内存地址),则是会提供具有严格全序保证的 std::less 特化版本。

上文内容也适用与 greater、less_equal、greater_equal。

参考:


  1. 这会导致同一比较运算可能返回不同的值,甚至在同一行代码中多个相同的比较运算可能返回不同的值 ↩︎

  2. libstdc++、libc++ 和 MSVC STL 皆是如此 ↩︎

  3. 指主流处理器(系统或编译器或许也有能力决定指针的实现方式,但我不确定) ↩︎

标签:std,less,运算符,https,使用,com,指针
From: https://www.cnblogs.com/dengjialing/p/16659789.html

相关文章

  • 最新一线大厂Redis使用21条军规及详细解读
    说明:个人原创,本人在一线互联网大厂维护着几千套集群,关于redis使用的一些坑进行了经验总结,希望能给大家带来一些帮助适用场景:并发量大、访问量大的业务规范:介绍军规内......
  • Vue(2)函数初识,与computed的使用
    序在实例vue对象时候,可以选择使用computed来完成计算,mvvm是mode,view,viewmode实现数据的双向绑定,这也体现其的便捷性。示例代码点击查看代码<divid="app"> <inpu......
  • MySQL8.0使用GROUP BY的问题
    当使用groupby的语句中,select后面跟的列,在groupby后面没有时,会报以下错误:Expression#2ofSELECTlistisnotinGROUPBYclauseandcontainsnonaggregatedcolumn......
  • SQLI-LABS(Less-5)
    Less-5(Doubleinjection-SingleQuotes-String)打开Less-5页面,可以看到页面中间有一句PleaseinputtheIDasparameterwithnumericvalue,那么先使用ID这个参数通过GE......
  • 46 | JAVA_IO_使用Files
    使用Files虽然Files是java.nio包里面的类,但他俩封装了很多读写文件的简单方法,例如,我们要把一个文件的全部内容读取为一个byte[],可以这么写:byte[]data=Files.readAllBy......
  • Java 使用技巧-如何抛出一个异常并捕获它
    工作中需要使用Java编写插件,但并不是主要技术栈,所以简单地学习记录一下。背景与Javascript不同,Java中类型的概念非常强,函数中不能返回与声明不同类型的返回值。例如下面......
  • commons-cli 一点使用
    背景:因项目调用FMIS接口API获取数据,需要获取多个接口进行拉取数据。1 总体上设计思想是:     部署到大数据平台JAR包,需要调用,有多少个表就调用多少次。 ......
  • SQLI-LABS(Less-4)
    Less-4(Errorbased-DoubleQuotes-string)打开Less-4页面,可以看到页面中间有一句PleaseinputtheIDasparameterwithnumericvalue,那么先使用ID这个参数通过GET方式......
  • Jenkins的使用(一)——Jenkins安装
    Jenkins安装一、Jenkins介绍Jenkins是一款著名的可扩展的用于自动化部署的开源CI/CD工具。Jenkins是完全用Java编写的,是在MIT许可下发布的。它有一组强大的功能,......
  • Markdown基础使用学习
    MarkDown学习标题:#+标题名字二级标题:##+标题名字三级... 字体两个*+字+两个=加粗一个=斜体引用一个大于号+内容 图片!【图片名字】(路径)符号全部小写 ......