QVector和std :: vector的大小方法

时间:2013-04-18 16:49:53

标签: c++ qt types vector

QVector的尺寸方法属于int,但std::vector中的相同方法是unsigned。为什么会有区别。是不是无符号类型是保持大小的正确方法,因为它不能是否定的?

1 个答案:

答案 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