我是 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()
。否则,它会调用未定义行为,因为在这种情况下它会尝试访问向量边界之外的元素。
如果您想确保它也检查越界访问,请使用at() as:
myVector.at(x) = o;
现在它会抛出std::out_of_range
异常如果x >= myVector.size()
。所以你必须把这段代码放入try-catch
堵塞!这里详细讨论它们之间的区别。
- 为什么在 C++ 中使用“vector.at(x)”比“vector[x]”更好?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)