STL front() ,back()和begin(),end()区别
2013-08-25 19:12 youxin 阅读(1157) 评论(0) 编辑 收藏 举报首先看看vector里面的:
reference front(); const_reference front() const;
queue里面的;
value_type& front(); const value_type& front() const;
一般,reference定义为value_type& ,const_reference定义为const value_type&,所以上面2者是等同的。
也就是front()返回第一个元素的引用,back()返回最后一个元素的引用。
而begin()和end()返回的是迭代器:
iterator begin(); const_iterator begin() const;
iterator一般等同于value_type *.
更重要的是,end()返回最后一个元素的下一个位置,而back()是返回最后一个元素。
back()
Returns a reference to the last element in the vector.
Unlike member vector::end, which returns an iterator just past this element, this function returns a direct reference.
Calling this function on an empty container causes undefined behavior.