我是 C++ 的新手,很好奇这是否是插入 std::vector 的首选方式
std::vector<Object_I_madeup> myVector;
void setAt(int x, Object_I_madeup o)
{
myVector[x] = o;
} // set the array location at x to be o.
我问是因为我看到很多关于使用 push_back
或高度困惑的 insert()
的事情。这种类似 Java 的方式有效吗?我宁愿这样做...
最佳答案
myVector[x] = o;
只有当 x < myVector.size()
时它才是明确定义的.否则,它会调用未定义的行为,因为在这种情况下,它会尝试访问 vector 边界之外的元素。
如果你想确保它也检查越界访问,那么使用 at()
作为:
myVector.at(x) = o;
现在它会抛出 std::out_of_range
如果 x >= myVector.size()
则异常(exception).所以你必须把这段代码放在try-catch
中堵塞!此处详细讨论了它们之间的区别。
关于c++ - 通过赋值运算符插入索引处的 std::vector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12204206/