vector向量容器(containers)及迭代器(iterators)在其中的应用

来源:互联网 发布:网络报警qq 编辑:程序博客网 时间:2024/06/10 15:04

STL = Standard Template Library 标准模板库
在C++标准中,STL被组织为下面的13个头文件:<algorithm>、<deque>、<functional>、<iterator>、
<vector>、<list>、<map>、<memory>、<numeric>、<queue>、<set>、<stack>和<utility>。
STL可分为容器(containers)、迭代器(iterators)、空间配置器(allocator)、配接器(adaptors)、
算法(algorithms)、仿函数(functors)六个部分。
STL容器主要包括向量(vector),列表(list),队列(deque),集合(set/multiset),
映射(map/multimap)等。STL用模板实现了这些常用的结构,并且以算法的形式提供了这些容器类的基本操作。
vector向量容器:在内存中占有一块连续的空间,存储一个元素序列,可以看做一个自动扩充的动态数组,
而且提供越界检查,可用【】运算符直接存取数据;需要快速查找,不在意插入或者删除的快慢,
能使有数组的地方都能使用<vector> 头文件<vector>

向量容器示例:

#include <iostream>#include<vector>using namespace std;int main(){    vector <double> scorevector ;//创建向量    double max=0,temp;    int i;    cout<<"输入学生的成绩(-1表示结束):";    for( i=0;true ;i++)    {        cin>>temp;        if(temp==-1){          break;        }        scorevector.push_back(temp);        if(temp>max)          {              max=temp;          }    }    max/=100;    for(i=0;i<scorevector.size();i++)    {        scorevector[i]/=max;        cout<<scorevector[i]<<endl;    }    cout << "Hello world!" << endl;    return 0;}//1:创建向量的方法;//2:vector容器的push_back( )函数的使用方法 size()函数的意义;//迭代器(iterators)是STL的一个重要组成部分,在STL中迭代器如同一个特殊的指针//(用以指向容器中的某个位置的数据元素,也有人据此将其译为泛型指针,指位器或者游标)用来存储容器内存储的数据。#include <iostream>#include<vector>using namespace std;int main(){    vector <double> scorevector ;//创建向量    double max=0,temp;    int i;    cout<<"输入学生的成绩(-1表示结束):";    for( i=0;true ;i++)    {        cin>>temp;        if(temp==-1){          break;        }        scorevector.push_back(temp);        if(temp>max)          {              max=temp;          }    }    max/=100;    for(vector<double>::iterator it=scorevector.begin();it!=scorevector.end();++it)     {         *it/=max;         cout<<*it<<endl;     }    cout << "Hello world!" << endl;    return 0;}
//其中it就是vector的一个迭代器,代表一个数据,其实begin(),end()也代表这一个数组里的数据,因此可以进行比较
it.begin()是代表第一位的数据