自己寫for_each

什麼事都自己來!

如果不屑使用STL裡的for_each的話,沒關係,我們可以自己寫!雖然比較麻煩,但是可以為自己的class量身打造就是..

程式碼如同之前的,我們來做個Show學生的ID,先在CClass裡面加上:

public:
	typedef void (*FOR_EACH)(CStudent student);
	void ForEach(FOR_EACH pFun)
	{
		std::vector<CStudent>::iterator it = m_students.begin();
		for (; it != m_students.end(); ++it)
			(*pFun)((*it));
	}

然後再隨便一處加上:

void ShowID(CStudent student)
{
	student.Show();
}

要使用的時候只要:

	class01.ForEach(ShowID);

就可以了,感覺比上一個方法簡潔多了,如果想要Show其他的資料,只要再做個ShowOther,然後再放到ForEach就可以了。