容器为空用 size()==0 还是用empty() 函数,两者有什么区别吗? 容器为空用 size()==0 还是用empty() 函数,两者有什么区别吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 从字面上就应该使用empty()否则要函数名干吗? 应该都可以,你可以自己看看源代码呀下面是vector的:size_type size() const{ // return length of sequence return (_Mysize);}bool empty() const{ // test if sequence is empty return (size() == 0);} 我知道是用empty,我是想知道为什么不能用 size==0能举出一个例子empty()为真, 但size不为0的情况吗,谢谢。 如果不考虑编译器优化的话,empty效率比0 == size差(多了一次函数调用)!至于为什么要有empty,只是让这个类看起来更完整,比如我举个例子:true 和 false两者只要存在一个即可,因为true == !false任何语言都有true和false!还有一种情况,就是简化编程时的输入,比如判断一个类为空,要判断3个变量(甚至更多,可能还要计算什么的):if (!a && !b && !c)if (empty())比较上面两个句子,效果一样,但后者更简洁,可读性强。 你post 一封Email给贝尔实验室问问他们有什么方法能满足你 其实含义是一样的,只不过empty()用起对代码的可读性要好些, 我在一本书上看到 vector可以为空,但是这个VECTOR容量可以非0希望 stivenjia 不懂就不要胡说。 拿strings来说,size()和length()两个成员函数所做的事情相同,size()是获取容器元素个数的通用成员函数,length()对应于一般的C-string strlen()函数,传回字符串长度。成员函数empty()用来检验字符数是否为0,亦即字符串是否为空。应该优先使用empty()函数,因为它比size()或length()来得快。 Do u mean this? vector<int> vtWhat;vtWhat[1];vtWhat[2];vtWhat[3];cout<<vtWhat.size()<<endl;return 0; 我希望 weiyongzhao 能好好理解一下我的文字含义而不是到这里乱说话,OK ?如果您没有理解清楚请Post me a email 我可以逐字给您解释。如果您有何方法能阐述这个问题请贴出您的代码而不是在这里撒野。 刚看到问题,忍不住说几句在大部分情况下,两者的效率是一样的,empty内部调用size,empty是内联函数,效率相同对于某些容器来说,对于某些实作版本,empty会比size要快,取决于实现。 网页使用ATL8.0的ActiveX dc dc getdc directdraw 哪里能找到OpenGL的电子书与代码 请教:如何在使用ADO技术时将变量的值写入数据库? 如何在程序中实现向计算机的某个端口发命令? 如何将一个已经链接的socket从一个server转移到另一个server 怎么根据ip地址确定用户地区? 请高手点拔:当学习VC到一定程度后,该怎样向上进步? 自定义的ActiveX控件再引用MSComm控件 ISAPI 不用映射函数如何得到 FORM 提交的数据? 重绘CTabCtrl问题求教 在创建Word文档的时候失败。
否则要函数名干吗?
下面是vector的:size_type size() const
{ // return length of sequence
return (_Mysize);
}bool empty() const
{ // test if sequence is empty
return (size() == 0);
}
能举出一个例子empty()为真, 但size不为0的情况吗,谢谢。
true 和 false
两者只要存在一个即可,因为true == !false
任何语言都有true和false!还有一种情况,就是简化编程时的输入,比如判断一个类为空,要判断3个变量(甚至更多,可能还要计算什么的):
if (!a && !b && !c)
if (empty())比较上面两个句子,效果一样,但后者更简洁,可读性强。
希望 stivenjia 不懂就不要胡说。
vector<int> vtWhat;
vtWhat[1];
vtWhat[2];
vtWhat[3];
cout<<vtWhat.size()<<endl;
return 0;
如果您没有理解清楚请Post me a email 我可以逐字给您解释。
如果您有何方法能阐述这个问题请贴出您的代码而不是在这里撒野。
对于某些容器来说,对于某些实作版本,empty会比size要快,取决于实现。