• STL漫谈


      从现在开始,想写一个关于STL工具的各种tip类的东西,记录下那些细节,以免以后使用STL工具时出错。

      1.关于map,如果需要第一个键值需要放进一个结构体,那么结构体是需要写好其自定义的排序规则的,这一点不妨和set作比较,因为它们的实现方法都是树,为了维持其内部树的结构来实现高效的使用,必须定义好自己的排序规则(尽管可能我把一个结构体放在map中第一个位置我并不需要它排序)。那么把结构体放在map的第二个位置需要定义好结构体的排序规则么?答案是不需要。不过写个排序规则也并不是难事,能写好就直接写好呗。(要说明的是,我上面的表述可能并不准确,map是以Key-Value这样的结构储存的,所以我上面所讲的第一个位置指的是键值Key,第二个位置指的是值Value。)

      2.对于第一点,还有一个拓展的地方,要把结构体丢进set或者map等容器里面,必须把排序规则写好之外,还必须把这个规则写完整,不然会出错。举个例子,一个边的结构体,有两个元素u和v,如果我们只是定义了这样的规则:

      return u<temp.u;

    那么如果u相同就会被认为是相同的两个边变量。因此我们必须写完整,如下:

      return u == temp.u ? v<temp.v : u<temp.u;

    尽管可能这个比较规则对我们来说并不重要,我们只是需要set的判重而已=。=

  • 相关阅读:
    python-logging配置
    python-装饰器
    python字符串操作
    python集合
    python-列表和元组
    Python 3开发网络爬虫(四): 登录
    python3中No module named 'commands'
    Python 爬虫 (三)
    零基础自学Python 3开发网络爬虫(二): 用到的数据结构简介以及爬虫Ver1.0 alpha
    零基础自学用Python 3开发网络爬虫(一)
  • 原文地址:https://www.cnblogs.com/zzyDS/p/5706121.html
Copyright © 2020-2023  润新知