STL中的back()&&end()||front()&&begin()辨析
2017-10-31 00:47
387 查看
vector中的back()&&end()、front()&&begin()辨析
目录
vector中的backendfrontbegin辨析目录
back函数
end函数
back end
front函数
begin函数
小结
back()函数
reference back ( );const_reference back ( ) const;
返回值
Returns a reference to the last element in the vector container.
返回在vector末尾元素的引用
end()函数
iterator end ();const_iterator end () const;
返回值
Returns an iterator referring to the past-the-end element in the vector container.
返回vector尾部元素的迭代器
back() && end()
vector::back, this function returns a direct reference;vector::end, which returns an iterator just past this element(end返回的迭代器在最后一个元素的后面)。/* * C/C++ 语言 * * @author Erice_s * @date 2017/10/31 * binbin_Erices@163.com * */ // vector::end #include <iostream> #include <vector> using namespace std; int main () { vector<int> myvector; for (int i=1; i<=5; i++) myvector.insert(myvector.end(),i); cout << "myvector contains:"; vector<int>::iterator it; for ( it=myvector.begin() ; it < myvector.end(); it++ ) cout << " " << *it; cout << endl; return 0; }
front函数
reference front ( );const_reference front ( ) const;
返回值
Returns a reference to the first element in the vector container.
begin函数
iterator begin ();const_iterator begin () const;
返回值
Returns an iterator referring to the first element in the vector container
看一个例子
/* * C/C++ 语言 * * @author Erice_s * @date 2017/10/31 * binbin_Erices@163.com * */ // vector::begin front #include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { vector<int> myvector; for (int i = 1; i <= 5; i++) myvector.push_back(i); vector<int>::iterator it; cout << "myvector contains:"; for_each(myvector.begin(), myvector.end(), [](int a){cout << a << " "; }); //lambda表达式[函数对象参数](操作符重载函数参数)mutable或exception声明->返回值类型{函数体} myvector.push_back(77); myvector.push_back(16); // now front equals 1, and back 16 myvector.front() -= myvector.back(); cout << " myvector.front() is now " << myvector.front() << endl; cout << endl; return 0; } //myvector contains: 1 2 3 4 5 myvector.front() is now -15
上面的代码是OK的,如果把myvector.front() -= myvector.back();
换成myvector.begin() -= myvector.back();效果如下:
小结
其实要分清end&&back,front&&begin很简单——end,begin返回的是一个迭代器;而back和front返回的是容器元素的引用。迭代器:迭代器是指针的泛化
迭代器本身是一个对象,指向另一个可以被迭代的对象,用来迭代一组对象。即若迭代器指向一组对象中的某个元素,则通过increment以后它就可以指向这组对象中的下一个元素。
相关文章推荐
- [C++]STL中vector容器 begin()与end()函数、front()与back()的用法
- C++STL中vector容器 begin()与end()函数、front()与back()的用法
- C++STL中vector容器 begin()与end()函数、front()与back()的用法
- C++ STL begin()和front()、end()和back()的区别与用法
- C++ STL begin()和front()、end()和back()的区别与用法
- STL中vector容器 begin()与end()函数、front()与back()的用法
- **c++ stl 顺序容器: begin(),end()和front(),back()区别和使用**
- C++STL中vector容器 begin()与end()函数、front()与back()的用法
- C++STL中vector容器 begin()与end()函数、front()与back()的用法
- C++STL中vector容器 begin()与end()函数、front()与back()的用法
- front/back与begin/end
- list(链表)常用成员(顺序容器)----插入push_back,push_front,insert删除pop_back,pop_front,erase,clear遍历begin,end判空emp
- list(链表)常用成员(顺序容器)----插入push_back,push_front,insert删除pop_back,pop_front,erase,clear遍历begin,end判空emp
- STL中vector容器begin(),end(),push_back()等相关函数
- vector之begin(),end(),front(),back()
- vector容器 begin()与end()函数、front()与back()的用法
- 顺序容器的begin,front,end,back的区别
- C++STL中vector容器 begin()与end()函数、front()与back()的用法
- C++STL中vector容器 begin()与end()函数、front()与back()的用法
- sort函数、vector中begin()、end()和front()、back()的区别