push_back 向量中的迭代器?

push_back iterator in vector?

我试图将数字 1,4,7...97 存储到一个向量中。 如果我使用 std::out << i; for 循环正在运行。

但是 push_back 给出了一个错误: 成员引用的基础是一个函数,也许您打算不带参数调用它。 我用谷歌搜索,但找不到对我有帮助的答案。

我唯一找到的是这个:

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

但是我要遍历向量吗? 我以为我只是存储迭代器

我感谢每一个帮助

std::vector<int>rock();

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

向量声明

std::vector<int>rock();

实际上是一个函数声明,即returns一个vector。

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

std::vector<int> rock;

std::vector<int>rock(); 是一个 .. 函数声明。

改用std::vector<int>rock;std::vector<int>rock{};