MFC和STL的几个小例

本文探讨了MFC中的CList类如何使用RemoveAt方法进行元素移除,并介绍了如何在STL的set中利用成员比较实现类的排序操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CList中RemoveAt的使用

#include <iostream>
#include <afxtempl.h>
using namespace std;
int main()
{
	POSITION tmpPos;
	CList<int,int> m_clist;
	
	for (int i = 0;i <= 10;i++)
	{
		m_clist.AddTail(i);
	}

	POSITION pos = m_clist.GetHeadPosition();
	while (pos)
	{
		int nCur = m_clist.GetAt(pos);

		if (nCur % 2)//删除偶数
		{
			tmpPos = pos;
			m_clist.GetNext(pos);
			m_clist.RemoveAt(tmpPos);
		}
		else
		{
			m_clist.GetNext(pos);
		}
	}

	pos = m_clist.GetHeadPosition();
	while (pos)
	{
		cout<<m_clist.GetAt(pos);

		m_clist.GetNext(pos);
	}

	system("pause");
}

使用STL中的set,根据类中某成员,对类进行排序

#include <iostream>
#include <string>
#include <set>
using namespace std;

class CID{
public:
	int num;
	bool operator<(const CID& ID)const   //给出operator<()的定义,以便在插入容器时排序,注意一定要有两个Const
	{
		return num <= ID.num; //从小到大排序
	}
};

int main()
{
	CID ID[3]={{3},{2},{4}};
	
	set<CID> st;
	st.insert(ID[0]);
	st.insert(ID[1]);
	st.insert(ID[2]);

	set<CID>::iterator it=st.begin();
	for (;it!=st.end();it++)
	{
		cout<<(*it).num<<" "<<endl;
	}

	system("pause");
	return 0;
}



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值