gpt4 book ai didi

c++ - 从 size_t 转换为 int,还是用 size_t 迭代?

转载 作者:可可西里 更新时间:2023-11-01 17:38:41 25 4
gpt4 key购买 nike

将迭代器条件右操作数从 size_t 转换为 int 更好,还是迭代可能超过 int 的最大值?答案实现具体吗?

int a;
for (size_t i = 0; i < vect.size(); i++)
{
if (some_func((int)i))
{
a = (int)i;
}
}

int a;
for (int i = 0; i < (int)vect.size(); i++)
{
if (some_func(i))
{
a = i;
}
}

最佳答案

我几乎总是使用第一个变体,因为我发现大约 80% 的时间,我发现 some_func应该也需要一个 size_t。

如果事实上some_func采用带符号的 int,您需要了解当 vect 大于 INT_MAX 时会发生什么.如果解决方案在您的情况下不明显(通常不是),您至少可以替换 some_func((int)i)some_func(numeric_cast<int>(i)) (有关 numeric_cast 的一种实现,请参见 Boost.org)。这样做的好处是当 vect 变得比您计划的大时抛出异常,而不是静静地环绕到负值。

关于c++ - 从 size_t 转换为 int,还是用 size_t 迭代?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1267915/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com