gpt4 book ai didi

c++ - 当使用 std::vector::push_back 插入未知数量的元素时,是否应该在每次推送时检查 std::vector::max_size?

转载 作者:太空宇宙 更新时间:2023-11-03 10:38:09 25 4
gpt4 key购买 nike

我在一个上下文中使用 std::vector,其中一次插入一个未知数量的元素。 std::length_errorstd::vector::reserve 时抛出会超过最大大小,但对于 std::vector::push_back 似乎没有这样的保证.我的第一直觉是检查每次推送时是否 my_vector.size() == my_vector.max_size(),如果超过最大值则抛出异常。

如果我不做这样的检查,容器会不会悄无声息地进入无效状态?例如,大小会溢出吗?

谢谢!

最佳答案

没有。如果无法分配内存,push_back() 将抛出异常。

max_size() 是理论上的限制。我从未见过它被使用过。也许在内存极其有限且没有异常支持的情况下它可能有用,但通常没有用。

关于c++ - 当使用 std::vector::push_back 插入未知数量的元素时,是否应该在每次推送时检查 std::vector::max_size?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55603686/

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