STL----vector 用法

来源:互联网 发布:网络打印适配器 编辑:程序博客网 时间:2024/04/29 17:01
今天博主抽空写写关于stl vector的内容吧。首先呢,最先写vector的原因是在于vector的重要性非常高,和stl map的地位我个人觉得差不多。他可以结合shared_ptr>在堆区创建动态数组,其实还是挺有意思的。其次呢,系统在读取内存的时候会将hitmem周围的内存都会读进内存,所以说使用数组的话,可以加快系统读取内存的速度(相比于list)。
好了,重要性我就说这么多了,关于vector的操作我会在代码中和大家好好讲一讲。其实关于vector的用法很重要,虽然操作方法多,但是不同的操作方法对于系统的操作代价是不一样的。博主就在这里随便写写吧。。
// blog_vector.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include
#include
using namespace std;
void vector_assign()
{
cout<<"***************************************"<<endl;
cout<<"function vector_assignbegins."<<endl;
vector coll;//创建一个空的coll,分配的内存大小为0
coll.assign(1,1);//对coll进行赋值,1个1
cout<<"coll capacity"<<coll.capacity()<<endl;
coll.push_back(2);//在coll的末尾放入数据2 
cout<<"coll capacity"<<coll.capacity()<<endl;
//coll.assign(2,2);
coll.insert(coll.end(),3);
cout<<"coll capacity"<<coll.capacity()<<endl;
cout<<"coll element"<<endl;
for(autoiter=coll.begin();iter!=coll.end();++iter)//使用迭代器遍历
{
cout<<*iter<<",";
}
cout<<endl;
vector coll2(10);//创建coll2 vector,分配大小为10
cout<<"coll2 capacity"<<coll2.capacity()<<endl;
coll2.assign(coll.begin(),coll.end());
coll2.push_back(4);
cout<<"coll2 element"<<endl;
for(auto iter=coll2.begin();iter!=coll2.end();++iter)
{
cout<<*iter<<",";
}
cout<<endl;
cout<<"last element of coll"<<coll.back()<<endl;
cout<<"first element of coll"<<coll.front()<<endl;
coll.pop_back();//弹出最后一个数据
coll.push_back(3);
coll.swap(coll2);//交换两组vector
cout<<"swap coll and coll2"<<endl;
cout<<"coll2 element"<<endl;
for(auto iter=coll2.begin();iter!=coll2.end();++iter)
{
cout<<*iter<<",";
}
    cout<<endl;
if(!coll.empty())//判定vector是否为空
{
cout<<"coll is not empty!"<<endl;
}
coll.erase(coll.begin(),coll.end());//清除内容,会改变size,不会改变capacity
if(coll.empty())
{
cout<<"coll is empty!"<<endl;
}
cout<<"***************************************"<<endl;
cout<<"function vector_assign ends."<<endl;
}
void vector_traversal()
{
   cout<<"***************************************"<<endl;
cout<<"function vector_traversalbegins."<<endl;
vector coll(10);
coll.push_back(1);
coll.push_back(2);
coll.push_back(3);
coll.push_back(4);
coll.push_back(5);
cout<<"forward traversal of coll"<<endl;
for(vector::iteratoriter=coll.begin();iter!=coll.end();++iter)//正向遍历
{
cout<<*iter<<",";
}
cout<<endl;
cout<<"reserve traversal of coll"<<endl;
for(vector::reverse_iteratoriter=coll.rbegin();iter!=coll.rend();++iter)//反向遍历
{
cout<<*iter<<",";
}
cout<<endl;
   cout<<"***************************************"<<endl;
cout<<"function vector_traversalends."<<endl;
}

int main()
{
vector_assign();
vector_traversal();
//vector_opertor();
return 0;
}
输出结果:
STL----vector <wbr>用法

STL----vector <wbr>用法


原创粉丝点击