<分区>
std::vector::erase
将接受表示要删除的元素位置的单个迭代器,或表示范围的两个迭代器。但是你不能这样做:
std::vector<int> vec = { 1, 2, 3 };
vec.erase(1);
相反,你必须做类似的事情
vec.erase( vec.begin()+1 );
这似乎是不必要的额外工作——只是想知道,类设计的 POV 是否有某些原因导致不包含此重载?
编辑:选择最全面的答案,都很好。另外,在我撰写本文时,这篇文章因“不具有建设性”而获得 4 票接近;但是,考虑到答案的质量,我认为这显然是一个有用的问题,当然对我而言。