QVector
的尺寸方法属于int
,但std::vector
中的相同方法是unsigned
。为什么会有区别。是不是无符号类型是保持大小的正确方法,因为它不能是否定的?
答案 0 :(得分:6)
因为they discussed it in 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
- Alex asandro@lcg.dc.ufc.br