【发布时间】:2020-10-12 09:37:59
【问题描述】:
我有一个std::vector,我想遍历除前两个之外的每个对象。如果我不想要两个 foreach 循环将是完美的。即for(const auto i : items)
我想到的可能的解决方案是删除前两个并在最后重新添加
const auto firstEle = myVec[0];
const auto secEle = myVec[1];
myVec.erase(myVec.begin());
myVec.erase(myVec.begin());
for(const auto i : items)
{
//do stuff with i
}
myVec.insert(myVec.begin(), secEle);
myVec.insert(myVec.begin(), firstEle);
或者有某种标志
unsigned int i = 0;
for(const auto j : items)
{
if(i < 2)
{
i++;
continue;
}
//do stuff with j
}
或者使用while循环
unsigned int i = 2;
while(i < myVec.size())
{
const auto j = myVec[i];
//do stuff with j
i++;
}
所有这些似乎都比它们需要的复杂。有没有更好更简单的解决方案?
【问题讨论】:
标签: c++ loops design-patterns foreach