c++ - 如何正确地将 vector 的大小传递给需要 int 的函数?

标签 c++ vector size-t function-parameter

我正在使用一个函数库,该函数的参数类型为 int .

我需要将 vector 的大小作为参数传递给这个参数。

我知道我可以使用 someVector.size() 获取 vector 的大小,但这会返回类型 size_t .

我知道我可以投 size_tint :例如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/

相关文章:

c++ - 使用 typeid 检查模板类型

c++ - 面向 C/C++ 程序员的数学资源

c++ - 将 1 加到由数字数组表示的数字

c++ - 标量、 vector 、张量的抽象基类,

c++ - 为什么要定义 rsize_t?

c - C 中 %zu 和 %lu 的区别

c++ - Qt 单选按钮在图标下方放置文本

c++ - 如何从带有形式参数的 bool 函数返回值?

json - 无法使用本地创建的向量,因为 "borrowed"

c - 下溢然后溢出无符号变量不好吗?