C++ 按用户列出的堆栈大小

C++ 按用户列出的堆栈大小,c++,stack,dynamic-memory-allocation,C++,Stack,Dynamic Memory Allocation,我试图根据用户输入的字母数动态分配堆栈 我当前的程序获取一组字母或数字,然后以FILO顺序(因此是相反的顺序)输出它们 例如,如果用户输入123,它将堆栈的大小设置为3并返回321 这是我的标题(类) 这是我的主要任务 int main() { CharStack chStack; //A stack with 100 char str[100]; int *size; cout << "input letter or n

我试图根据用户输入的字母数动态分配堆栈

我当前的程序获取一组字母或数字,然后以FILO顺序(因此是相反的顺序)输出它们

例如,如果用户输入123,它将堆栈的大小设置为3并返回321

这是我的标题(类)

这是我的主要任务

int main()  {
    CharStack chStack;              //A stack with 100
    char str[100];
    int *size;

    cout << "input letter or numbers:";
    cin >> str;
    size = new int[strlen(str)+1];  //count number of letters.
intmain(){
CharStack chStack;//包含100个字符的堆栈
char-str[100];
整数*大小;
cout>str;
size=newint[strlen(str)+1];//计算字母数。
等等


我想我需要做的就是设置
size(主)=buf[size]
(在头文件中)。我相信有一个非常简单的方法可以解决这个问题,但我看不到它。

你可以使用
std::stack
,它可以满足你的需要

但是,如果您必须或想要自己做,您应该使
buf
成为指向char的指针,并根据需要使用
new[]
delete[]
分配和释放内存。类似于在代码中使用
size
所做的操作。使用
std::vector
是一种介于两者之间的解决方案


您可以通过构造函数或
setSize()
函数将大小传递给您的类。

FIFO意味着元素的输出顺序与它们的输入顺序相同,而不是相反。在任何情况下,为了回答您的问题,
size
CharStack
private
成员,因此
main()无法访问
在代码中。如果需要访问私有对象的值,请声明返回该值的类的
public
成员函数。FIFO:先进先出,taht不会恢复。您知道std::stack吗?感谢所有注释。我刚刚将FIFO编辑为FILO。我将在名为LIFO的std::stack.FILO列表上进行谷歌搜索。
int main()  {
    CharStack chStack;              //A stack with 100
    char str[100];
    int *size;

    cout << "input letter or numbers:";
    cin >> str;
    size = new int[strlen(str)+1];  //count number of letters.