可以將vector.size()的結果存儲到int類型的變量中嗎?是否可以將vector.size()的結果存儲到int類型的變量中?
例如,我得到警告此:
int n = a.size();
是否確定要做到這一點:
int n = (int)a.size();
,或者我應該使用不同類型的變量n?
感謝
可以將vector.size()的結果存儲到int類型的變量中嗎?是否可以將vector.size()的結果存儲到int類型的變量中?
例如,我得到警告此:
int n = a.size();
是否確定要做到這一點:
int n = (int)a.size();
,或者我應該使用不同類型的變量n?
感謝
這不是一般的好,因爲size()
返回類型可以輕鬆擁有太大在int
存儲值。對於特定的vector
,您應該使用與返回類型size()
相同類型的變量。這是很容易與auto
實現:
auto n = a.size();
如果你沒有C++ 11的支持,那麼你可以使用vector
的size_type
:
std::vector<TheType>::size_type n = a.size();
其中a
是std::vector<TheType>
。
不,它不好。使用
std::vector<T>::size_type n = a.size();
,或者如果你不太迂腐:
size_t n = a.size();
**爲什麼downvote?** – 2013-07-06 16:19:17
使用auto會好很多,同意嗎? – user2381422
@ user2381422如果你知道那麼好,那你爲什麼要問?Troll。 – 2013-07-06 16:32:43
如果你確定元素的數量將適合的int
這沒關係。
後者是相當一口。什麼使它值得呢? – delnan
@delnan「如果你沒有C++ 11的支持,」...... – 2013-07-06 16:18:45
@delnan在沒有C++ 11的情況下,它是必要的,當然它可以用typedef來分配。 – juanchopanza