STL学习小结(原创:桑英硕 )[3]

[入库:2005年8月19日] [更新:2007年3月24日]

本文简介:选择自 wxaxiao 的 blog

由此可见,指针和迭代器还是有很大差别的。和指针最接近的就是随机访问迭代器。下面是一个我编写的小例子:功能是分别对数组,向量,表,多重集合进行插入操作,对每个容器插入100万个随机整数;

#include<iostream>
#include<iterator>
#include<vector>
#include<list>
#include<set>
#include<time.h>
#include<conio.h>
#include<algorithm>
using namespace std;
template<typename t>
void arrayinsert(t*a,t*s,long size)    //向数组插入数据
{
   //for(long i=0;i<10;i++)  // //好像数组支持不到100万,我们就算10万的
                                         //最后在把把结果乘以10吧,
   //{

       for(long k=0;k<size;k++)
       {
           a[k]=s[k]; 
       }
   //}
}
template<typename t>
void vectorinsert( vector<t> *v,t*s,long size)     //向向量插入数据
{
   for(int i=0;i<10;i++)
   {
       for(long k=0;k<size;k++)
       {
           v->push_back(s[k]);
      }
   }
}
template<typename t>
void listinsert(list<t>*l,t*s,long size)   //向表插入数据
{
   for(int i=0;i<10;i++)
   {
       for(long k=0;k<size;k++)
       {
           l->push_back(s[k]);
       }  
   }
}
template<class t>
void multisetinsert(multiset<t>*s1,t*s,long size)   //向多重集合插入数据
{
   for(int i=0;i<10;i++)
   {
       for(long k=0;k<size;k++)
       {
           s1->insert(s[k]);  
       }
   }
}
int* genintdata(long size)                  //生成随机数
{
   int* data=new int[size];
   generate(&data[0],&data[size],rand);
   return data;

}  
int main(void)
{
   const long size=100000;
   int* s_data,array1[size];
   double begin,end;
   s_data=genintdata(size);
   vector<int>
vector1;
   list<int> list1;
   multiset<int> multiset1;

本文关键:STL学习小结(原创:桑英硕 )
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top