我想防止 std::unordered_set::insert() 抛出异常。如果我保留了我将插入到 unordered_set 中的最大元素数,std::unordered_set::reserve() 是否达到了这个目的?
最佳答案
不幸的是,reserve() 只能用于控制何时进行重新散列,因此迭代器将至少在插入保留数量的元素之前保持有效。在保留范围内,插入仍然可以抛出 bad_alloc(使用默认分配器)。
对于 nothrow 保证,唯一的可能性是事先知道可以插入哪些键,然后将它们全部插入到可以轻松处理异常的位置。
关于c++ - 是否可以防止 unordered_map::insert 抛出异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29043243/