我正在使用一个函数库,该函数的参数类型为 int
.
我需要将 vector 的大小作为参数传递给这个参数。
我知道我可以使用 someVector.size()
获取 vector 的大小,但这会返回类型 size_t
.
我知道我可以投 size_t
到int
:例如static_cast<int>(someVector.size())
.但是,如果 someVector.size()
,转换可能会导致问题超过 int
的最大值.
将 vector 的大小传递给需要 int
类型参数的函数的正确方法是什么? ?
最佳答案
没有“安全”的方式将 std::size_t
传递给接受 int
的函数(只要 size_t
大于最大可表示 int
你有麻烦了)。但是,您可以测试通过是否安全:
if(v.size() < std::numeric_limits<int>::max()) // need to #include <limits>
{
// safe to pass
}
else
{
// not safe, throw error/exit/print something
}
只要 int
为正,比较总是安全的。
关于c++ - 如何正确地将 vector 的大小传递给需要 int 的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29957575/