矢量中的位置值

position value in vector

本文关键字:位置      更新时间:2023-10-16

我想在位置-1的矢量对象中插入一个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);

或者,在矢量的情况下,使用类似push_back()

v.push_back(p);

对于访问矢量,只能使用非负索引,即v[-1]无效。

此外,您不能将整数分配给迭代器,主要是因为迭代器同时封装了位置和它所引用的容器。如果您想为指定位置"构造"迭代器的话,请使用以下添加项:

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

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

这是不可能的。vector-索引必须大于或等于0。如果您想要负索引,则必须使用std::map

矢量索引从零开始。因此,不存在所谓的"位置-1"。

如果要在矢量的起点插入元素,请使用v.begin()作为插入位置。

Vectors表示索引,并且索引不能为负数。

始终为正。你这样做:

v[2] = 5;

只是一个例子。索引不能为负数,因为它是一个位置。负面立场并不存在。