#include <iostream>
#include <list>
#include <iterator>
#include <algorithm>
#include <string.h>
using namespace std;
#define TEST_CLASS
typedef struct __testStruct
{
int a;
//unsigned char b;
int b;
unsigned int c;
}TESTSTRUCT,*LPTESTSTRUCT;
class testclass
{
public :
testclass(){;}
virtual ~testclass(){; }
int b; //just this
private:
int a;
unsigned char cb;
unsigned int c;
};
#ifdef TEST_CLASS
#define LISTTYPE testclass *
#else
#define LISTTYPE LPTESTSTRUCT
#endif
list<LISTTYPE> MyList;
int Init()
{
list<LISTTYPE>::iterator it = MyList.begin();
for (; it != MyList.end(); it++)
{
if (*it)
{
delete (*it);
}
}
MyList.clear();
}
int Uninit()
{
list<LISTTYPE>::iterator it = MyList.begin();
for (; it != MyList.end(); it++)
{
if (*it)
{
delete (*it);
}
}
MyList.clear();
}
int AddOne(int b)
{
LISTTYPE ptmpinfo=NULL;
#ifdef TEST_CLASS
ptmpinfo = new testclass;
#else
ptmpinfo = new TESTTYPE;
memset((void *)ptmpinfo, 0, sizeof(LPTESTTYPE));
#endif
ptmpinfo->b=b;
MyList.push_back(ptmpinfo);
}
int DeleteOne(int b)
{
list<LISTTYPE>::iterator it = MyList.begin();
for (; it != MyList.end(); it++)
{
if ((*it)->b == b)
{
delete (*it);
MyList.erase(it);
cout<<"have been delete :"<<b<<endl;
break;
}
}
return 0;
}
int FindOne(int b)
{
list<LISTTYPE>::iterator it = MyList.begin();
for (; it != MyList.end(); it++)
{
if ((*it)->b==b)
{
cout<<"have been find :"<<b<<endl;
}
}
}
int main(int argc, char* argv[])
{
for (int i = 0; i < 200; i++)
{
AddOne(i);
}
if(DeleteOne(100)==0)
{
// cout<<"have been delete"<<endl;
}
// else
// cout<<"not find"<<endl;
list<LISTTYPE>::iterator Itor;
for ( Itor = MyList.begin(); Itor != MyList.end(); )
{
cout<<(*Itor)->b<<" ";
Itor++;
}
//copy(MyList.begin(), MyList.end(), ostream_iterator<int>(cout, " ") );
cout<<endl;
return 0;
}
#include <list>
#include <iterator>
#include <algorithm>
#include <string.h>
using namespace std;
#define TEST_CLASS
typedef struct __testStruct
{
int a;
//unsigned char b;
int b;
unsigned int c;
}TESTSTRUCT,*LPTESTSTRUCT;
class testclass
{
public :
testclass(){;}
virtual ~testclass(){; }
int b; //just this
private:
int a;
unsigned char cb;
unsigned int c;
};
#ifdef TEST_CLASS
#define LISTTYPE testclass *
#else
#define LISTTYPE LPTESTSTRUCT
#endif
list<LISTTYPE> MyList;
int Init()
{
list<LISTTYPE>::iterator it = MyList.begin();
for (; it != MyList.end(); it++)
{
if (*it)
{
delete (*it);
}
}
MyList.clear();
}
int Uninit()
{
list<LISTTYPE>::iterator it = MyList.begin();
for (; it != MyList.end(); it++)
{
if (*it)
{
delete (*it);
}
}
MyList.clear();
}
int AddOne(int b)
{
LISTTYPE ptmpinfo=NULL;
#ifdef TEST_CLASS
ptmpinfo = new testclass;
#else
ptmpinfo = new TESTTYPE;
memset((void *)ptmpinfo, 0, sizeof(LPTESTTYPE));
#endif
ptmpinfo->b=b;
MyList.push_back(ptmpinfo);
}
int DeleteOne(int b)
{
list<LISTTYPE>::iterator it = MyList.begin();
for (; it != MyList.end(); it++)
{
if ((*it)->b == b)
{
delete (*it);
MyList.erase(it);
cout<<"have been delete :"<<b<<endl;
break;
}
}
return 0;
}
int FindOne(int b)
{
list<LISTTYPE>::iterator it = MyList.begin();
for (; it != MyList.end(); it++)
{
if ((*it)->b==b)
{
cout<<"have been find :"<<b<<endl;
}
}
}
int main(int argc, char* argv[])
{
for (int i = 0; i < 200; i++)
{
AddOne(i);
}
if(DeleteOne(100)==0)
{
// cout<<"have been delete"<<endl;
}
// else
// cout<<"not find"<<endl;
list<LISTTYPE>::iterator Itor;
for ( Itor = MyList.begin(); Itor != MyList.end(); )
{
cout<<(*Itor)->b<<" ";
Itor++;
}
//copy(MyList.begin(), MyList.end(), ostream_iterator<int>(cout, " ") );
cout<<endl;
return 0;
}