可以将 vector.size() 的结果存储到 int 类型的变量中吗?
例如,我收到警告:
int n = a.size();
这样做可以吗:
int n = (int)a.size();
或者我应该使用不同类型的变量 n 吗?
谢谢
可以将 vector.size() 的结果存储到 int 类型的变量中吗?
例如,我收到警告:
int n = a.size();
这样做可以吗:
int n = (int)a.size();
或者我应该使用不同类型的变量 n 吗?
谢谢
这通常是不行的,因为返回类型size()
很容易具有太大而无法存储在int
. size()
您应该使用与该特定的返回类型相同类型的变量vector
。这很容易实现auto
:
auto n = a.size();
如果您没有 c++11 支持,那么您可以使用vector
's 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();
如果您确定元素的数量适合int
.