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

时间:2013-07-06 16:14:14

标签: c++

将vector.size()的结果存储到int?

类型的变量中是否可以

例如,我收到警告:

int n = a.size();

可以这样做:

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

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

由于

3 个答案:

答案 0 :(得分:13)

通常不正常,因为size()的返回类型很容易包含太大而无法存储在int中的值。对于特定的size(),您应该使用与vector的返回类型相同类型的变量。使用auto

可轻松实现此目的
auto n = a.size();

如果您没有c ++ 11支持,那么您可以使用vector的{​​{1}}:

size_type

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

答案 1 :(得分:8)

不,不行。使用

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

或者如果你不那么迂腐:

size_t n = a.size();

答案 2 :(得分:5)

如果你确定元素的数量适合int,那没关系。