首页 > 解决方案 > 如何在 C++ 中制作堆栈列表?

问题描述

我正在尝试使用以下代码在 C++ 中创建堆栈列表,但出现错误

main.cpp:17:13: error: ‘__gnu_cxx::__alloc_traits > >::value_type {aka class std::stack}’ has no member named ‘push_back’
 vs[i-1].push_back(s);

代码:

#include <bits/stdc++.h>
using namespace std;

int main()
{
vector<stack<int>> vs;

for(int i=1; i<4; i++)
{
stack<int> s;
s.push(i*2);
s.push(i*3);
s.push(i*4);
vs[i-1].push_back(s);
}

return 0;
}

标签: c++stlstack

解决方案


你不能使用这条线: -

vs[i-1].push_back(s);

或者更早地定义列表的大小。例如

vector<stack<int> > vs(100);

否则只写

vs.push_back(s);

更新的解决方案

#include <iostream>
#include<stack>
#include<vector>
using namespace std;
 
int main()
{
    vector< stack<int> > vs;
 
for(int i=1; i<4; i++)
{
    stack<int> s;
    s.push(i*2);
    s.push(i*3);
    s.push(i*4);
    vs.push_back(s);
}
 
return 0;
}

推荐阅读