当一个字符串是“”或一个向量没有元素时,`begin()`等于`end()`?

时间:2013-05-13 23:51:07

标签: c++ string iterator

std::string""或向量没有元素时,begin()是否等于end()

如果是,begin() / end()的价值是多少?

2 个答案:

答案 0 :(得分:6)

  

当std :: string为“”或者vector没有元素时,begin()是否等于end()?

是的,对于任何空的标准库容器,包括std::stringstd::vectorbegin()将返回与end()相同的迭代器。

  

如果是这样,begin()/ end()的值是什么?

它将是一个对该容器唯一的迭代器,但不应该被解除引用。这样做会导致未定义的行为。

答案 1 :(得分:4)

是。任何没有元素的STL容器类型都会有begin() == end(),因为元素范围是半开放范围[begin()end())。

希望这有帮助!