MFC和STL的几个小例

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



 

你可能感兴趣的:(MFC和STL的几个小例)