首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果列表为空,QList::first()将返回什么?

如果列表为空,QList::first()将返回什么?
EN

Stack Overflow用户
提问于 2015-10-20 14:52:00
回答 3查看 1.4K关注 0票数 0

这是这个函数的文档,

代码语言:javascript
运行
复制
T & QList::first ()

返回对列表中第一项的引用。列表不能是空的。如果列表可以为空,则在调用此函数之前调用isEmpty()

我正在试图弄清楚,如果列表是空的,QList::first()会返回什么?

EN

回答 3

Stack Overflow用户

发布于 2015-10-20 15:31:53

对源(引用:qtproject/qt )的快速扫描显示,调用受QT_ASSERT(!isEmpty())保护(包括重写、const和non)。

如果没有在源代码中进行挖掘,我猜QT_ASSERT将调用terminate或类似的,如果是在调试中内置的,并且可能在发行版中编译出来。否则,对QList::first的调用最终会取消代理类型QListData::Data中的指针,这在您的情况下是未定义的行为。

概括地说:不要这样做

票数 4
EN

Stack Overflow用户

发布于 2015-10-20 15:27:21

只需查看相应的qlist.h头即可。QList::first()的实现非常简单

代码语言:javascript
运行
复制
inline T& first() { Q_ASSERT(!isEmpty()); return *begin(); }

在空列表上,断言将abort()您的程序。

票数 0
EN

Stack Overflow用户

发布于 2015-10-21 15:32:31

如果列表为空,QList::first()将返回什么?

它再也不会回来了。我是认真的。

哦,像你这样的问题,我真的很困惑。如果您不能尝试它,也许您应该设置您的环境,使这样的实验容易,然后再深入研究。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33239905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档