提问者:小点点

向量中的push_back迭代器?


我试着把数字1,4,7.。。97存储到一个向量中。 如果我使用std::out<<; I; for循环正在工作。

但是push_back给出了一个错误:成员引用的base是一个函数,可能您的意思是不带参数地调用它。 我在谷歌上搜索了一下,却找不到一个对我有帮助的答案。

我唯一找到的是这个:

“在C++中,向向量添加元素可能会导致所包含数据的重新分配,这将使所有迭代器失效。这意味着,在插入新元素的同时,您不能使用迭代器对向量进行循环(基于范围的for循环就是这样做的)。但是,您可以使用索引进行迭代,并将向量大小作为条件,因为索引总是相同的。”

但是我要在向量上循环吗? 我以为我只是存储了迭代器

我很感激你的帮助

std::vector<int>rock();

int i;
for (int i = 1; i < 100; i+=3)
{
std::cout<< " " << i;
rock.push_back(i);
}

共2个答案

匿名用户

std::vectorrock();是一个。。。 函数声明。

请改用std::Vector<;Int>;Rock;std::Vector<;Int>;Rock{};

匿名用户

向量声明

std::vector<int>rock();

实际上是一个函数声明,返回一个向量。

那不是你想要的。 删除():

std::vector<int> rock;