0

可以将 vector.size() 的结果存储到 int 类型的变量中吗?

例如,我收到警告:

int n = a.size();

这样做可以吗:

int n = (int)a.size();

或者我应该使用不同类型的变量 n 吗?

谢谢

4

3 回答 3

13

这通常是不行的,因为返回类型size()很容易具有太大而无法存储在int. size()您应该使用与该特定的返回类型相同类型的变量vector。这很容易实现auto

auto n = a.size();

如果您没有 c++11 支持,那么您可以使用vector's size_type

std::vector<TheType>::size_type n = a.size();

哪里astd::vector<TheType>

于 2013-07-06T16:15:31.247 回答
8

不,这不好。利用

std::vector<T>::size_type n = a.size();

或者如果你不那么迂腐:

size_t n = a.size();
于 2013-07-06T16:15:47.560 回答
5

如果您确定元素的数量适合int.

于 2013-07-06T16:28:05.760 回答