【发布时间】:2019-04-24 14:47:17
【问题描述】:
我正在尝试做一些非常简单的事情,将一个整数添加到一个向量并删除它。但是当我使用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 永远不会被删除。
不知道为什么这种简单的用法不起作用。
【问题讨论】:
-
at想要一个索引。