List使用

来源:互联网 发布:超兽武装玩具淘宝 编辑:程序博客网 时间:2024/05/18 00:31

#pragma once

class TestList
{
 //适用于插入和删除操作, remove用来删除逻辑元素, erase用来删除物理元素。 remove速度快,但陷井较多。 erase速度慢,但陷井少
public:
 TestList(void);
 virtual ~TestList(void);
 void test();
 void test1();
 void test2();
};


 

//---------------------------------------------------------

 

#include "TestList.h"
#include <list>
#include <iostream>
#include <algorithm>
#include <string>


using namespace std;

 

TestList::TestList(void)
{
}

TestList::~TestList(void)
{
}


void TestList::test()
{
 list<char> coll;
 for(char c='a'; c<='z'; ++c)
 {
  coll.push_back(c);
 }
 copy(coll.begin(),coll.end(),ostream_iterator<char>(cout," "));
 cout<<endl;
}

void TestList::test1()
{
 list<char> coll;
 for(char c='a'; c<='z'; ++c)
 {
  coll.push_back(c);
 }
 list<char>::const_iterator pos;
 for( pos = coll.begin(); pos != coll.end(); ++pos)
 {
  cout<<*pos<<' ';
 }
 cout<<endl;
}

void TestList::test2()
{
 list<int> coll;
 for(int i=1; i<=6; ++i)
 {
  coll.push_front(i);
  coll.push_back(i);
 }
 cout<<"pre: "<<endl;
 copy(coll.begin(),coll.end(),ostream_iterator<int>(cout," "));
 cout<<endl;

 list<int>::iterator endLogic = remove(coll.begin(),coll.end(),3);
 cout<<"real: remove: "<<endl;
 copy(coll.begin(),coll.end(),ostream_iterator<int>(cout," "));
 cout<<endl;

 cout<<"logic: remove"<<endl;
 copy(coll.begin(),endLogic,ostream_iterator<int>(cout," "));
 cout<<endl;

 coll.erase(endLogic,coll.end());
 cout<<"real: erase"<<endl;
 copy(coll.begin(),coll.end(),ostream_iterator<int>(cout," "));
 cout<<endl;
}

 

原创粉丝点击