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{};
。
我试图将数字 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{};
。