gpt4 book ai didi

c++ - std::vector::begin() - 1 是否未定义?

转载 作者:太空宇宙 更新时间:2023-11-04 14:35:34 27 4
gpt4 key购买 nike

我需要以倒序遍历某些元素,我正在使用:

for ( /* ... */ it = vec.end() - 1, end = vec.begin() ; it >= end ; --it ) {
// ...

我现在 end() - 1是为一些容器定义的,包括 vector,但现在我需要知道是否也定义了 begin decrement。

编辑

我不知道我是否可以使用 reverse_iterator,因为我需要将这些迭代器作为参数传递给 std::vector::erase,从文档来看,它们看起来是不同的类型。

最佳答案

是的,它是未定义的。

如果你想反向迭代元素,只需使用 rbeginrend .它们是反向迭代器,专门为此目的而设计。如果你需要从反向迭代器中得到一个标准迭代器,你可以使用 base member function在迭代器上。

关于c++ - std::vector::begin() - 1 是否未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18225651/

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