is的 size 方法QVector
属于 type int
,但 is 中的方法std::vector
相同unsigned
。为什么有区别。无符号类型不是保持大小的正确方法,因为它不能为负数吗?
问问题
791 次
1 回答
6
因为他们在 1999 年对其进行了讨论,并得出了int
一个更好的选择的结论,因为返回的函数数量uint
相对较少,并且他们对警告感到不满:
Subject: Re: killing uint as return type in Qt. From: Alex Sandro Queiroz e Silva <asandro@xxxxxxxxxxxxx> Date: Wed, 17 Mar 1999 15:29:37 -0300 (EST) Cc: qt-interest@xxxxxxxx To: Arnt Gulbrandsen <arnt@xxxxxxxx>
1999 年 3 月 17 日,Arnt Gulbrandsen 写道:
Qt 中大约 0.15% 的函数返回 uint。其中大部分被称为 QMumble::size() 或 QMumble::count()。这些函数永远不需要返回负数,所以实际上,uint 是它们返回的正确类型。
但这很麻烦,至少对我来说。我一直将它们与整数进行比较,将它们放入可以包含负数的变量中,等等。我写过
if ( blah->count() < i )
并且已经多次收到编译器警告。
所以我正在考虑在 Qt 2.0 中将这些函数的返回类型更改为 int。你怎么看?你是用户——你想要正确性和完全向后兼容性还是更方便?
--Arnt
我认为这次的便利性更好,我们现在都可能从这种方法中得到什么样的结果,所以...
-- 亚历克斯 asandro@lcg.dc.ufc.br
于 2013-04-18T17:02:34.790 回答