C++ 编译时出现矢量推回错误

C++ 编译时出现矢量推回错误,c++,vector,push-back,C++,Vector,Push Back,编译这段涉及对向量使用push_-back函数的代码最终会出错 for (int i=0; i<=n; i++) { if(i==0) { Profit[i].push_back(0); Weight[i].push_back(0); Name[i].push_back(""); } else { Profit[i].push_back(tosteal[i-1].getProfit())

编译这段涉及对向量使用push_-back函数的代码最终会出错

for (int i=0; i<=n; i++)
{
    if(i==0)
    {
        Profit[i].push_back(0);
        Weight[i].push_back(0);
        Name[i].push_back("");
    }
    else
    {
        Profit[i].push_back(tosteal[i-1].getProfit());
        Weight[i].push_back(tosteal[i-1].getWeight());
        Name[i].push_back(tosteal[i-1].getName());
    }   
}
for(int i=0;i
应该是

Profit.push_back(0);
以此类推。
Profit
是向量本身;通过说
Profit[i].push_back(0)
,您试图将某些内容推入向量中已经存在的元素之一,而不是将某些内容推入向量中


由于元素类型是
int
Profit[i]
类型是
int
,这就是为什么会出现错误:
请求[…]中的成员“push_back”,这是非类类型“int”

不是您要求的,而是
中的
i
范围(int i=0;iWeight和Profit是int数据类型的声明向量……好吧,那么为什么需要执行
权重[i]。向后推?
Profit[i].push_back(0);
Profit.push_back(0);