注意:1.begin指向首个/第0个元素;end指向最后一个元素的下一个位置;
CTime m_dataTimeStart(yearStart,monthStart,dayStart,hourStart,minuteStart,secondStart);
CTime m_dataTimeEnd(yearEnd,monthEnd,dayEnd,hourEnd,minuteEnd,secondeEnd);
vector<int> num;
for (int i=0;i<m_ArrayListInfo.size();i++)
{
CString bmpName;
bmpName = m_ArrayListInfo[i].szTestListImgName;
//获取中间的时间
int iPos = bmpName.Find('_',0);
//取中间的时间
CString time;
time = bmpName.Mid(iPos+1, 14);//年月日时分秒-14个字符
//CString-->int
//将时间字符串“20191105161021”,格式化为“年月日时分秒”
int yearNum = _tstoi(time.Mid(0,4));
int mouthNum = _tstoi(time.Mid(4,2));
int dayNum = _tstoi(time.Mid(6,2));
int hourNum = _tstoi(time.Mid(8,2));
int minuteNum = _tstoi(time.Mid(10,2));
int secondNum = _tstoi(time.Mid(12,2));
CTime imgTime(yearNum,mouthNum,dayNum,hourNum,minuteNum,secondNum);
//将符合条件的几个元素索引,记录到一个数组num中
if (imgTime < m_dataTimeStart || imgTime > m_dataTimeEnd )
{
num.push_back(i);
}
}
if(((CButton*)GetDlgItem(IDC_CHECK_TIMEFILTER))->GetCheck() == 1)
{
CFvArray<TestList_Info>::iterator iterTask = m_ArrayListInfo.begin();
for (int i=0;i<num.size();i++) //从后往前删
{
if(num[num.size()-i-1] == (m_ArrayListInfo.size()-1))
{
m_ArrayListInfo.pop_back();
}
else
{
m_ArrayListInfo.erase(iterTask + num[num.size()-i-1]);
}
}
//显示
DisplayList();
}