void PrintClist()
{
POSITION bbbPos2 = bbb.GetHeadPosition();
int i = 0;
while (bbbPos2 != NULL)
{
cout << "bbb[" << i << "]:" << bbb.GetNext(bbbPos2) << endl;
i++;
}
}//输出CList所有元素
void PrintList()
{
list<int> ::iterator aaaPos2 = aaa.begin();
int i = 0;
while (aaaPos2 != aaa.end())
{
cout << "aaa[" << i << "]:" << *aaaPos2 << endl;
aaaPos2++;
i++;
}
}//输出list所有元素
void main()
{
CList<int, int> bbb;
bbb.AddTail(1);
bbb.AddTail(2);
bbb.AddTail(3);
bbb.AddTail(4);
bbb.AddTail(5);
list<int> aaa = { 1,2,3,4,5 };
list<int> ::iterator aaaPos = aaa.begin();
POSITION bbbPos = bbb.GetHeadPosition();//获取第一个元素的位置
int iaaa = 0;
int ibbb = 0;
iaaa = aaa.front();
ibbb = bbb.GetHead();//获取第一个元素
iaaa = aaa.back();
ibbb = bbb.GetTail();//最后一个元素
//*aaaPos bbb.GetAt(bbbPos) 获取某个位置的元素
int i0 = 2;
bbbPos = bbb.FindIndex(i0);
int ibbb3 = bbb.GetAt(bbbPos);
aaaPos = next(aaa.begin(), i0);
int iaaa3 = *aaaPos;//获取指定位置的元素
bbbPos = bbb.GetTailPosition();
int ibbb4 = bbb.GetPrev(bbbPos);
int ibbb5 = bbb.GetPrev(bbbPos);
//获取bbb倒数第一和第二个元素 完成后bbbPos会指向倒数第三个元素
aaaPos = aaa.end();
aaaPos--;
int iaaa4 = *aaaPos;
aaaPos--;
int iaaa5 = *aaaPos;
aaaPos--;
//同理
aaa.push_back(1000);
bbb.AddTail(1000);
bbb.AddHead(100);
aaa.push_front(100);
//在头或尾部添加元素
aaa.pop_back();
aaa.pop_front();
bbb.RemoveHead();
bbb.RemoveTail();
//在头或尾部删除元素
aaaPos = aaa.begin();
aaaPos++;
*aaaPos = 2000;
bbbPos = bbb.GetHeadPosition();
bbb.GetNext(bbbPos);
bbb.SetAt(bbbPos, 2000);
//将第2个元素设置成2000
list<int>::iterator lt;
lt = aaaPos;
aaa.erase(aaaPos);
bbb.RemoveAt(bbbPos);
//删除第2个元素,完成后aaaPos无法访问,bbbPos指向值还是为2000,都需要重新赋值
int iaaaSize = aaa.size();
int ibbbSize = bbb.GetCount();
//两个链表大小
}
bbbPos = bbb.GetHeadPosition();
bbb.GetNext(bbbPos);
bbb.InsertAfter(bbbPos, 20003);
bbb.InsertBefore(bbbPos, 20002);
aaaPos = aaa.begin();
aaaPos++;
list<int>::iterator InsertNext = ++aaaPos;
list<int>::iterator InsertPrev = aaaPos;
aaa.insert(InsertNext, 20003);
aaa.insert(InsertPrev, 20002);