C++ STL中判断list为空,size()==0和empty()有什么区别

2023-05-16

关于两个的区别,首先size()==0为bool表达式,empty()为函数调用,这一点很明显。查看源代码,

bool empty() const { return _M_node->_M_next == _M_node; }  
size_type size() const {  
  size_type __result = 0;  
  distance(begin(), end(), __result);  
  return __result;  
}

可以看出empty直接检查标记节点,而size是通过求首尾迭代器的距离来获取元素个数的。

查看的源代码来自http://www.sgi.com/tech/stl/download.html


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ STL中判断list为空,size()==0和empty()有什么区别 的相关文章

  • 如何在Python中将列表中的整数相加(对数字列表求和)?

    假设我有一个整数列表 例如 2 4 7 12 3 我怎样才能将所有数字加在一起 以获得28 x 2 4 7 12 3 sum of all numbers sum x 或者你可以尝试这个 x 2 4 7 12 3 sum of all nu
  • 如何使用 forEach 删除列表中的元素?

    var people alex jason matt people forEach function p if p length gt 4 REMOVE THIS PERSON or pop it out of the list or wh
  • 迭代 C++ 映射中的键

    有没有办法迭代键 而不是 C 映射对 地图是关联容器 因此 迭代器是一对key val 如果您只需要键 则可以忽略该对中的值部分 for std map
  • 如何在AWS批处理中定义根卷大小

    我正在使用 AWS Batch 但发现根卷大小对于我的任务来说太小 我尝试创建一个新的计算环境 作业队列 但没有任何选项来设置卷大小 我尝试更改启动配置here https console aws amazon com ec2 autosc
  • 如何找到向量中第一个小于整数 X 的元素? (c++)

    如果我有以下向量 10 10 10 20 20 20 30 30 我想要一个函数返回 X 的整数的位置或直接返回 X 之后的较小元素 例如如果我正在搜索 11 我希望函数返回 2 因为第二个元素 10 是第一个较小的元素向量中大于 11 的
  • 从列表中删除元素的最佳方法

    我想知道从列表中删除元素的最佳方法 有效方法是什么 有功能很少 https docs python org 3 tutorial datastructures html more on lists由Python提供 some list re
  • PyKCS11 不可哈希列表

    我的 python 脚本旨在获取特定 so 库中插槽 令牌的详细信息 输出如下所示 Library manufacturerID Safenet Inc Available Slots 4 Slot no 0 slotDescription
  • 如何删除列表中的重复值? [复制]

    这个问题在这里已经有答案了 可能的重复 如何从 Python 列表中删除重复项同时保持顺序 https stackoverflow com questions 480214 how do you remove duplicates from
  • 通过浅复制避免 List 上的 ConcurrentModificationException

    我有一堂课如下 class Test private LinkedList
  • 获得列表并集的最快方法 - Python

    有一个 C 比较可以从列表列表中获取列表的并集 找到集合并集的最快方法 https stackoverflow com questions 11362002 the fastest way to find union of sets 还有其
  • 在Python中随机化列表[重复]

    这个问题在这里已经有答案了 我想知道是否有一个好方法来 震动 Python 中的项目列表 例如 1 2 3 4 5 可能会被动摇 随机化 3 1 4 2 5 任何顺序都同样可能 from random import shuffle list
  • Android 数组列表如何使用

    所以我有一个标记列表 我需要弄清楚如何处理它们 我已经搜索了几个小时 但没有明确说明如何使用这些信息或如何从列表中获取信息 请解释或分解我的代码并告诉我它到底是如何工作的 这样我就可以在地图上设置标记 这就是我将标记添加到列表中的方法 现在
  • 列表有简短的 contains 函数吗?

    给定一个列表xs和一个值item 如何检查是否xs包含item 即 如果任何元素xs等于item 有没有类似的东西xs contains item For performance considerations see Fastest way
  • STL 映射值构造函数

    我有一个类 X 我想将其放入 std map 类型的 STL 映射中 STL 映射需要将 X 存储在内存中的某个位置 因此我正在寻找一种有效的 运行时和内存 方法来创建 X 并将其存储在映射中 我注意到以下代码 其中 x 是 X 类型的对象
  • 列表:Count 与 Count() [重复]

    这个问题在这里已经有答案了 给定一个列表 首选哪种方法来确定内部元素的数量 var myList new List
  • Java 按日期作为字符串对列表 进行排序

    我有一个类型列表 我想按日期元素对该列表进行排序 我用谷歌搜索 看到了一些具有可比性的解决方案 但是是否有可能在不实现类中接口的情况下做到这一点 我的列表如下所示 列表 id 33 文本 test1 日期 06 02 15 id 81 文本
  • STL迭代器是否保证集合更改后的有效性?

    假设我有某种集合 并且我在它的开头获得了一个迭代器 现在假设我修改了该集合 无论集合或迭代器的类型如何 我仍然可以安全地使用迭代器吗 为了避免混淆 以下是我讨论的操作顺序 获取集合的迭代器 修改集合 显然 不是其中的元素 而是集合本身 使用
  • Java Reflection - 获取数组对象的大小

    我想知道是否有人知道如何使用反射获取数组对象的大小 我有一个Vehicles包含类型数组对象的组件Car 车辆 java public class Vehicles private Car cars Getter and Setters C
  • 展平具有复杂嵌套结构的列表

    我有一个具有以下示例结构的列表 gt dput test structure list id 1 var1 2 var3 4 section1 structure list var1 1 var2 2 var3 3 Names c var1
  • 使用 STL 迭代器而不初始化它

    我想做这样的事情 container iterator it NULL switch eSomeEnum case Container1 it vecContainer1 begin break case Container2 it vec

随机推荐

  • Mac常用应用 brew list

    61 61 gt Formulae ca certificates gdbm go libidn2 mpdecimal python 64 3 10 readline wget delve gettext jsonschema libuni
  • Slack 消息回传

    Slack预留了回传接口 可以将报错 告警信息等回传到Slack频道里 https api slack com messaging webhooks
  • Postgres 最大连接数满了: remaining connection slots are reserved for non-replication superuser connections

    最近遇到链接pg数据库报错 xff1a remaining connection slots are reserved for non replication superuser connections 百度说 xff0c 是由于设置的最大
  • oracle游标:fetch和for循环游标

    1 fetch 显式的open close Declare Cursor cur Is Select xtwldm From xtm14 curRow cur Rowtype Begin Open Cur Loop Fetch cur In
  • .net {"已添加项。字典中的关键字:“**”所添加的关键字:“**”"}

    用户代码未处理 System ArgumentException HResult 61 2147024809 Message 61 已添加项 字典中的关键字 00 所添加的关键字 00 Source 61 mscorlib StackTra
  • docker: 为运行的container增加多个端口

    1 list all docker process and stop running container test01 docker ps a docker stop test01 2 commit the container docker
  • git prune, git remote prune, git fetch --prune 三者异同

    远程分支的3种状态 远程仓库确实存在分支dev本地版本库 xff08 git xff09 中的远程快照和远程分支建立联系的本地分支 git prune https git scm com docs git prune Prune all u
  • Jmeter_Non HTTP response code: java.net.SocketException

    error msg rc 61 span class hljs string 34 Non HTTP response code java net SocketException 34 span rm 61 span class hljs
  • SQL Server 数据库导入导出数据

    Data Micration between SQL Server Database 1 减少源数据库的导出数据 排除日志表数据 xff1a 日志表数据体积大且没有导出价值 精简掉备份表 xff1a 为了保证数据的安全 xff0c 一般会对
  • 程序员读书啦!!!

    成为Java顶尖程序员 xff0c 看这11本书就够了 xff1a http blog csdn net u012410733 article details 51869105 编程科普书籍推荐 xff1a http blog csdn n
  • Windows设置本地DNS域名解析Hosts

    DNS Domain Name System 域名系统 xff1a 为了加快定位IP地址的速度 将域名映射进行层层缓存的系统 目的 xff1a 互联网通过IP xff08 10 223 146 45 xff09 定位浏览器建立连接 xff0
  • 机器学习之缺失样本重采样策略

    1 引言 在机器学习领域中 对不均衡数据集进行建模是我们训练模型时经常遇到的挑战 比如在分类问题上 训练集上类别的平衡对模型建模起着重要作用 如果直接对类间不平衡的数据进行建模 xff0c 即数据集中存在少数类 xff0c 这样训练好的模型
  • aptitude与apt-get

    aptitude 与 apt get 一样 xff0c 是 Debian 及其衍生系统中功能极其强大的包管理工具 与 apt get 不同的是 xff0c aptitude 在处理依赖问题上更佳一些 举例来说 xff0c aptitude
  • js 冒泡排序、函数(function)

    一 冒泡排序 原理 数组中的元素两个两个进行比较 xff0c 如果前面的数大于后面的数就进行交换 xff0c 如果前面的数小于后面的数不交换位置 xff0c 后面的继续和下一个进行比较 整体代码 xff1a 冒泡排序 var arr 10
  • python 中Dict 转 Json

    最近在公司需要写个小工具 xff0c 运用到的python xff0c 然后需要将Dict转成Json 之前遇到转换Json失败 xff0c 然后以为复杂的Entity结构 xff0c 不能用Json的库Json dump xff0c 进行
  • Zabbix监控

    由于本人工作职责的一部分 xff0c 需要用Zabbix监控 xff0c 所以在此贴一下Zabbix监控 实在觉得Zabbix监控做的太牛掰 xff0c 先打Tag xff0c 周末再来补全
  • 看完23岁的我在干嘛之后有感

    现在我已经25岁了 xff0c 先说我23岁的时候吧 xff0c 23岁我在干嘛 xff0c 刚上研究生 xff0c 好像貌似一切都挺顺的 xff0c 考研成功 xff0c 进入北京比较好的一所大学读计算机 xff1b 然后是和前任分手 x
  • Libev源码解析

    最近在看libev源码 xff0c 算是对libev的源码有个比较清晰的了解 总共分3部分来介绍libev 1 Libev是什么 Libev是基于Reactor模式的一个高性能 xff0c 支持高并发的事件库 它本身不仅支持IO xff0c
  • Android开发之Intent跳转到系统应用中的拨号界面、联系人界面、短信界面 .相机.录影机....

    Android开发之Intent跳转到系统应用中的拨号界面 联系人界面 短信界面 现在开发中的功能需要直接跳转到拨号 联系人 短信界面等等 xff0c 查找了很多资料 xff0c 自己整理了一下 安装已经存在的apk String file
  • C++ STL中判断list为空,size()==0和empty()有什么区别

    关于两个的区别 xff0c 首先size 61 61 0为bool表达式 xff0c empty 为函数调用 xff0c 这一点很明显 查看源代码 xff0c bool empty const return M node gt M next