CList转list中遇到的问题

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);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值