删除一个向量元素第四元素需要以下代码:为什么删除元素时需要vector.begin()?
vector<int> v;
....
....
v.erase(v.begin()+3); // Erase v[3], i.e. the 4th element
我不知道为什么我们需要v.begin()部分。 这将是更好的只是写:
v.erase(3); // Erase v[3], i.e. the 4th element
的开始()是向量中的一员,因此擦除方法也可以同样处理的那部分为我们,让我们的代码会更容易阅读,容易理解。
有可能是一个很好的理由,我想知道。 有人可以解释或链接一个解释? 谢谢。
'std :: vector v = {2,3,1}; v.erase(3);' - 可读?将它与'std :: set
@Poriferous +3给出第二个元素?你先生不能算。 – Borgleader
@Kerrek SB:我不明白你的意思 - 对不起,但为什么是'的std ::向量 V = {2,3,1}; v.erase(v.begin()+ 3);'更具可读性?在这两种情况下,它的麻烦.. –
4386427