gpt4 book ai didi

c++ - 通过赋值运算符插入索引处的 std::vector

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:56:38 26 4
gpt4 key购买 nike

我是 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com