2017-04-19 106 views

回答

3

考虑使用for回路搭配指数:

for (size_t i = 0; i < args.size(); i++) 
{ 
    if (args[i] == "condition") { 
     i++; 
     continue; 
    } 
} 
+0

比迭代器更好的方法 – jamek

1

您可以使用迭代器。

auto it_end = --args.end(); 
for(auto it = args.begin(); it != args.end(); it++){ 
    if (*it == "condition" && it != it_end) it++; 
} 
+2

如果'“条件”'是args'的'结束,那么这将导致一个错误,因为'它++'被调用一次更多的时候'它是在'args.end()' – tntxtnt

+0

我已经更新了我的答案,我想现在它是正确的,并没有失去太多的效率。@ tntxtnt – Jiahao

+0

如果'args'是空的,'--args.end() '看起来像我未定义的行为。 –

相关问题