当std::string
为""
或向量没有元素时,begin()
是否等于end()
?
如果是,begin()
/ end()
的价值是多少?
答案 0 :(得分:6)
当std :: string为“”或者vector没有元素时,begin()是否等于end()?
是的,对于任何空的标准库容器,包括std::string
和std::vector
,begin()
将返回与end()
相同的迭代器。
如果是这样,begin()/ end()的值是什么?
它将是一个对该容器唯一的迭代器,但不应该被解除引用。这样做会导致未定义的行为。
答案 1 :(得分:4)
是。任何没有元素的STL容器类型都会有begin() == end()
,因为元素范围是半开放范围[begin()
,end()
)。
希望这有帮助!