gpt4 book ai didi

c++ - 在 C++ 中使用堆栈

转载 作者:太空狗 更新时间:2023-10-29 23:52:55 28 4
gpt4 key购买 nike

对于一个类,我必须使用堆栈。据我所知,我创建了一个堆栈

#include <stack>
class c1
{
stack<Point> openstack;
};

Point 是我创建的一个类,它有一个 x 和 y int 值来存储用于简单 2D 图形的点。我遇到的问题是,如果我这样做

Point p = openstack.pop();

我得到一个错误:“不存在合适的构造函数来将 void 转换为 Point”

Point 有一个 set 函数,它接受一个点并将使用传递的点来存储 x 和 y 值,但这也不起作用。

Point p;
p.set(openstack.pop()); // does not work

有人能告诉我我做错了什么吗?如果您需要信息,请询问 - 如果需要,我可以提供更多信息。

最佳答案

pop() 不返回值。它只是删除最高值。它是这样声明的:

void pop();

要获得最高值,您需要调用 top()。之后您可以调用 pop()

Point p = openstack.top();
openstack.pop();

a couple reasons为什么 pop() 不返回弹出的值。

关于c++ - 在 C++ 中使用堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13317149/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com