Предполагается, что вы ищете элемент, содержащий значение 2
, а не значение по индексу 2
.
#include<vector>
#include<algorithm>
int main(){
std::vector<int> a={1,2,3};
a.erase(std::find(a.begin(),a.end(),2));
}
(я использовал C ++ 0x, чтобы избежать какого-то шаблона, нофактическое использование std::find
и vector::erase
не требует C ++ 0x)