将vector.size()的结果存储到int?
类型的变量中是否可以例如,我收到警告:
int n = a.size();
可以这样做:
int n = (int)a.size();
或者我应该使用不同类型的变量n吗?
由于
答案 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
,那没关系。