0
可以升级这个for
循环吗?将我的for循环升级到C++ 11样式
hItem = m_treeHistory.InsertItem(TVIF_TEXT|TVIF_PARAM,
strText, 0, 0, 0, 0, (LPARAM)psAssign, TVI_ROOT, TVI_LAST);
if (psAssign->aryPtrAssignments.GetSize() > 0)
{
iSize = psAssign->aryPtrAssignments.GetSize();
for (i = 0; i < iSize; i++)
{
psAssignHist = (HIST_DATA_ASSIGN_S *)psAssign->aryPtrAssignments[i];
if (psAssign != nullptr)
{
strText = psAssignHist->datAssignment.Format(VAR_DATEVALUEONLY);
if (psAssignHist->strMethod != _T(""))
{
strText += _T(" - ");
strText += psAssignHist->strMethod;
}
if (psAssignHist->strTheme != _T(""))
{
strText += _T(" - ");
strText += psAssignHist->strTheme;
}
// AJT v10.7.0
if (strFilterText == _T("") || IsFilteredMatch(psAssignHist))
{
m_treeHistory.InsertItem(TVIF_TEXT|TVIF_PARAM,
strText, 0, 0, 0, 0, (LPARAM)psAssignHist, hItem, TVI_LAST);
}
}
}
tvs.hParent = hItem;
tvs.lParam = (LPARAM)&m_treeHistory;
tvs.lpfnCompare = CompareDateAssignHistory;
m_treeHistory.SortChildrenCB(&tvs);
}
正是这种for
循环:
iSize = psAssign->aryPtrAssignments.GetSize();
for (i = 0; i < iSize; i++)
{
我已经看过here和它表明:
for(int i: someDataStructure) doSomething();
但我不知道我是否可以采用这个我psAssign->aryPtrAssignments
列表,它是HIST_DATA_ASSIGN_S
指针的CPtrArray
。
谢谢。
这些'begin'和'end'方法如何被'for'循环调用? –
@AndrewTruckle就像普通函数一样,传递数组(在我的例子中是'myArray')作为参数。请按照我的答案中的链接参考,其中包括循环的等效代码示例。 –
我明白了。所以真的,你建议我制作自己的具有这些方法的'CPtrArrayEx'类,然后从'CPtrArrayEx'派生** my **数组,然后我就可以修改迭代的方式。我懂了。所以最后的逻辑问题是,值得做出这样的改变吗? –