我正在尝试做一个非常简单的操作,将一个整数添加到向量中并将其删除。但是,当我使用at
确定是否插入了元素时,会引发异常。
class Obj
{
...
private:
std::vector<unsigned int> elements;
}
void Obj::addElement(unsigned int elt)
{
elements.push_back(elt);
printElements();
}
void Obj::removeElement(unsigned int elt)
{
try
{
printElements();
elements.at(elt);
}
catch (const exception& ex)
{
cout << "NOT FOUND" << endl;
return;
}
elements.erase(std::remove(elements.begin(), elements.end(), elt, elements.end());
}
void Obj::printElements()
{
for(vector<unsigned int>::iterator i = elements.begin(); i != elements.end();++i)
{
cout << *i << endl;
}
}
传入5
可以说...
obj.addElement(5);
obj.removeElement(5);
printElements
始终打印您期望的内容。但是在removeElement
中,总是会引发异常,并且永远不会删除5
。
不确定为什么这种简单的用法不起作用。