为什么说'push_back'尚未宣布?
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector <int> v(30);
v[0].push_back(0);
return 0;
}
答案 0 :(得分:14)
v[0]
是对vector
中初始元素的引用;它不是vector
本身。该元素的类型为int
,它不是类类型对象,因此没有成员函数。
您在寻找v.push_back(0);
吗?
请注意,vector<int> v(30);
会在其中创建包含30个元素的vector
,每个元素的值为零。调用v.push_back(0);
会将vector
的大小增加到31.这可能是也可能不是您想要的行为;如果不是,你需要澄清你正在尝试做什么。
答案 1 :(得分:2)
您需要执行v.push_back(0)
因为push_back
是向量的方法而不是其元素。
答案 2 :(得分:2)
试试这个:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector <int> v(30);
v.push_back(0);
return 0;
}
问题是v [0]是vector中的第一个元素,它是一个int。向量的名称是v。
答案 3 :(得分:2)
只需使用v.push_back(0);
你必须将push_back转换为向量。不是矢量的特定元素。
答案 4 :(得分:2)
使用v.push_back(0)
,因为v[0]
是int
,而不是vector
。
答案 5 :(得分:2)
你的错误类型。
v
的类型为 Vector 。 v[0]
NOT 是一个向量,而是对第一个元素(将是int
)的引用。
因此,v[0]
没有push_back
方法
只有向量本身(v
)才有方法。