front()和begin()之间的区别

Ryg*_*guy 17 c++ stl

许多STL容器中出现的函数front()begin()函数有什么区别?

Joa*_*son 23

begin()返回一个迭代器,可用于迭代集合,同时front()只返回对集合的第一个元素的引用.

  • +1只是为了使事情更明确(或者可能更复杂):`&c.front()==&*c.begin()`用于任何至少有一个元素的容器.比较*address-of*表达式用于证明它不是*values*是相同的,但是*objects*(即`c.front()`产生对同一对象的引用,该对象取消引用开始迭代器`*c.begin()`). (6认同)

Mar*_*som 5

front()返回对第一个元素的引用,begin()并返回它的迭代器。

请注意,您不应该调用front空容器,但begin只要您不取消引用begin返回的迭代器,就可以调用。