初学STL,以下内容且当自己积累用,日后再慢慢完善。
向量容器(vector)是一种顺序容器,是一块连续分配的内存,支持随机访问,从数据安排的角度看,和数组极其相似。
数组跟vector的区别在于:数组是静态分配空间,一旦分配了空间的大小,就不可以再改变了,例如,int a[6];而vector是动态分配内存,随着元素的不断插入,它会按照自身的一套机制不断扩充自身的容量,vector容器的容量增长是按照容器现在容量的一倍进行增长。
至于迭代器,它类似一个指向vector中元素的指针。
------------------------------------------------------------------------
【front函数】
①函数原型:
reference front();
const_reference front();
②功能:
返回当前vector容器中起始元素的引用,即返回vector容器中的第一个元素。
------------------------------------------------------------------------
【back函数】
①函数原型:
reference back();
const_reference back();
②功能:
返回当前vector容器中末尾元素的引用,即返回vector容器中的最后一个元素。
------------------------------------------------------------------------
【begin函数】
①函数原型:
iterator begin();
const_iterator begin();
②功能:
返回一个当前vector容器中起始元素的迭代器。
------------------------------------------------------------------------
【end函数】
①函数原型:
iterator end();
const_iterator end();
②功能:
返回一个当前vector容器中末尾元素的迭代器。
------------------------------------------------------------------------
#include <iostream> #include <vector> using namespace std; int main() { vector<char> v; vector<char>::iterator iter1; //迭代器1 vector<char>::iterator iter2; //迭代器2 v.push_back(‘A‘); v.push_back(‘B‘); v.push_back(‘C‘); v.push_back(‘D‘); v.push_back(‘E‘); cout<<"v.front() = "<<v.front()<<endl; //输出vector容器中的第一个元素 cout<<"v.back() = "<<v.back()<<endl; //输出vector容器中的最后一个元素 iter1=v.begin(); cout<<*iter1<<endl; iter2 = v.end()-1; //注意v.end()指向的是最后一个元素的下一个位置,所以访问最后一个元素 //的正确操作为:v1.end() - 1 cout << *iter2 << endl; return 0; }
OUTPUT:
v.front() = A
v.back() = E
A
E