Learn Vector

来源:互联网 发布:c语言中getchar怎么用 编辑:程序博客网 时间:2024/05/21 12:39

Learn STL-Vector


  vector类似于之前写过的动态数组类(CDArray),其实就是C++内置的一个动态数组类,这些统称为STL容器(STL – Standard Template Library 标准模板库)。
  使用的时候就当做是一个模板类,需要引用头文件#include<vector>,还要用using namespace std;
  迭代器是一种检查容器内元素并遍历元素的数据类型。它提供类似指针的功能,对容器的内容进行走访。

以下来自http://blog.csdn.net/phunxm/article/details/5081472

#include<vector>std::vector<type> vec;std::vector<type> vec(size);std::vector<type> vec(size,value);std::vector<type> vec(myvector);std::vector<type> vec(first,last);Operators:==、!=、<=、>=、<、>、[]assign(first,last):用迭代器first,last所指定的元素取代向量元素assign(num,val):用val的num份副本取代向量元素at(n):等价于[]运算符,返回向量中位置n的元素,因其有越界检查,故比[]索引访问安全front():返回向量中第一个元素的引用back():返回向量中最后一个元素的引用begin():返回向量中第一个元素的迭代器end():返回向量中最后一个元素的下一个迭代器(仅作结束游标,不可解引用)max_size():返回向量类型的最大容量(2^30-1=0x3FFFFFFF)capacity():返回向量当前开辟的空间大小(<= max_size,与向量的动态内存分配策略相关)size():返回向量中现有元素的个数(<=capacity)clear():删除向量中所有元素empty():如果向量为空,返回真erase(start,end):删除迭代器start end所指定范围内的元素erase(i):删除迭代器i所指向的元素erase()返回指向删除的最后一个元素的下一位置的迭代器insert(i,x);把x插入到迭代器i所指定的位置之前insert(i,n,x):把x的n份副本插入到迭代器i所指定的位置之前insert(i,start,end):把迭代器start和end所指定的范围内的值插入到迭代器i所指定的位置之前push_back(x):把x推入(插入)到向量的尾部pop_back():弹出(删除)向量最后一个元素rbegin():返回一个反向迭代器,该迭代器指向的元素越过了向量中的最后一个元素rend():返回一个反向迭代器,该迭代器指向向量中第一个元素reverse():反转元素顺序resize(n,x):把向量的大小改为n,新元素的初值赋为xswap(vectorref):交换2个向量的内容

Test

void PrintVector(vector<DataType> v){    if(v.empty()==0)    {        for(std::vector<DataType>::iterator i=v.begin();i<v.end();i++)            cout<<*i<<" ";        cout<<endl;    }else cout<<"Empty!"<<endl;}
0 0