记录两个基本一致的函数的冗余优化(GPT 提供)

//原始函数  ,两个之间只是一个判断条件不同
bool CAdapterMng::FullAdapterInRun()
{
	std::map::iterator itr = m_mpRunningAdapter.begin();
	while (itr != m_mpRunningAdapter.end())
	{
		if (NULL == itr->second)
		{
			return false;
		}
		itr++;
	}
	return true;
}

bool CAdapterMng::EmptyAdapterInRun()
{
	std::map::iterator itr = m_mpRunningAdapter.begin();
	while (itr != m_mpRunningAdapter.end())
	{
		if (NULL != itr->second)
		{
			return false;
		}
		itr++;
	}
	return true;
}

//优化:对于这两个函数,大可不必优化,太简单了
//通过传入函数的方式来区分

bool CAdapterMng::CheckAdapters(bool (*comparisonFunc)(CAdapter*))
{
    std::map::iterator itr = m_mpRunningAdapter.begin();
    while (itr != m_mpRunningAdapter.end())
    {
        if (!comparisonFunc(itr->second))
        {
            return false;
        }
        itr++;
    }
    return true;
}

bool CAdapterMng::FullAdapterInRun()
{
    return CheckAdapters([](CAdapter* adapter) { return (NULL != adapter); });
}

bool CAdapterMng::EmptyAdapterInRun()
{
    return CheckAdapters([](CAdapter* adapter) { return (NULL == adapter); });
}




你可能感兴趣的:(c++)