gpt4 book ai didi

c++ - vector 中的位置值

转载 作者:太空宇宙 更新时间:2023-11-04 15:50:46 25 4
gpt4 key购买 nike

我想在位置-1 的 vector 对象中插入一个 int 值,即:

vector<int> v;
int p = 12;
vector<int>::iterator it = -1;
v.insert(it,1,p);

在 C++ 中有可能吗?还是必须始终为正数?

最佳答案

使用 insert 方法插入总是在指定的迭代器之前发生,因此要在第一个位置插入(即*在*当前第一个元素之前)使用:

v.insert(v.begin(), p);

(如果只插入一个元素,可以省略 count 参数)。

可以使用 end() 迭代器在最后位置插入

v.insert(v.end(), p);

或者,对于 vector ,使用 push_back() 之类的

v.push_back(p);

对于访问 vector ,您只能使用非负索引,即 v[-1] 是无效的。

您也不能将整数分配给迭代器,主要是因为迭代器封装了两者,位置和它所引用的容器。如果您想为指定位置“构造”迭代器,请使用如下添加:

std::vector<int> it = v.begin() + index;

(请注意,迭代器的添加仅适用于所谓的随机访问迭代器,因此它取决于容器类型。)

关于c++ - vector 中的位置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8911144/

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