vector之begin(),end(),front(),back()
2016-09-13 15:02
441 查看
1、向量容器(vector)是一种顺序容器,是一块连续分配的内存,支持随机访问,从数据安排的角度看,和数组极其相似。
数组跟vector的区别在于:数组是静态分配空间,一旦分配了空间的大小,就不可以再改变了。
2、vector的扩充机制:按照容器现在容量的一倍进行增长。
vector容器分配的是一块连续的内存空间,每次容器的增长,并不是在原有连续的内存空间后再进行简单的叠加,而是重新申请
一块更大的新内存,并把现有容器中的元素逐个复制过去,然后销毁旧的内存。
这时原有指向旧内存空间的迭代器已经失效,所以当操作容器时,迭代器要及时更新。
2、常用函数
begin函数:
函数原型: iterator begin(); const_iterator begin();
功能:返回一个指向当前vector容器中起始元素的迭代器。
end函数:
函数原型:iterator end(); const_iterator end();
功能:返回一个指向当前vector容器中末尾元素的迭代器。
front函数:
函数原型:reference front(); const_reference front();
功能:返回当前vector容器中起始元素的引用。
back函数:
函数原型:reference back(); const_reference back();
功能:返回当前vector容器中末尾元素的引用。
实例:
v1.front() = m
v1.back() = p
m
p
数组跟vector的区别在于:数组是静态分配空间,一旦分配了空间的大小,就不可以再改变了。
2、vector的扩充机制:按照容器现在容量的一倍进行增长。
vector容器分配的是一块连续的内存空间,每次容器的增长,并不是在原有连续的内存空间后再进行简单的叠加,而是重新申请
一块更大的新内存,并把现有容器中的元素逐个复制过去,然后销毁旧的内存。
这时原有指向旧内存空间的迭代器已经失效,所以当操作容器时,迭代器要及时更新。
2、常用函数
begin函数:
函数原型: iterator begin(); const_iterator begin();
功能:返回一个指向当前vector容器中起始元素的迭代器。
end函数:
函数原型:iterator end(); const_iterator end();
功能:返回一个指向当前vector容器中末尾元素的迭代器。
front函数:
函数原型:reference front(); const_reference front();
功能:返回当前vector容器中起始元素的引用。
back函数:
函数原型:reference back(); const_reference back();
功能:返回当前vector容器中末尾元素的引用。
实例:
#include <iostream> #include <vector> using namespace std; int main() { vector<char> v1; vector<char>::iterator iter1; vector<char>::iterator iter2; v1.push_back('m'); v1.push_back('n'); v1.push_back('o'); v1.push_back('p'); cout << "v1.front() = " << v1.front() << endl; cout << "v1.back() = " << v1.back() << endl; iter1 = v1.begin(); cout << *iter1 << endl; iter2 = v1.end()-1; //注意v1.end()指向的是最后一个元素的下一个位置,所以访问最后一个元素 //的正确操作为:v1.end() - 1; cout << *iter2 << endl; return 0; }输出结果:
v1.front() = m
v1.back() = p
m
p
相关文章推荐
- [C++]STL中vector容器 begin()与end()函数、front()与back()的用法
- C++STL中vector容器 begin()与end()函数、front()与back()的用法
- C++STL中vector容器 begin()与end()函数、front()与back()的用法
- vector容器 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()的用法
- STL中vector容器 begin()与end()函数、front()与back()的用法
- sort函数、vector中begin()、end()和front()、back()的区别
- C++STL中vector容器 begin()与end()函数、front()与back()的用法
- C++STL中vector容器 begin()与end()函数、front()与back()的用法
- list(链表)常用成员(顺序容器)----插入push_back,push_front,insert删除pop_back,pop_front,erase,clear遍历begin,end判空emp
- C++ STL begin()和front()、end()和back()的区别与用法
- STL中vector容器begin(),end(),push_back()等相关函数
- 如果要取数据的话,vector和deque中和begin()相对应的不是end()...是back()
- list(链表)常用成员(顺序容器)----插入push_back,push_front,insert删除pop_back,pop_front,erase,clear遍历begin,end判空emp
- 顺序容器的begin,front,end,back的区别
- front/back与begin/end
- STL中的back()&&end()||front()&&begin()辨析
- **c++ stl 顺序容器: begin(),end()和front(),back()区别和使用**