gpt4 book ai didi

c++ - STL 堆栈和 top() 函数的问题

转载 作者:行者123 更新时间:2023-11-28 07:24:11 25 4
gpt4 key购买 nike

这是我遇到问题的一段代码:

if (stack_flag == true) {
bool hangar = false;
while (hangar == false) {
unsigned int index = s_move.top();
unsigned int edge = map[index].get_which_edge();
char current = map[index].get_char();
s_move.pop();

如果我的程序采用命令行输入说明这样做,则使用堆栈容器;这就是堆栈标志。这是我循环的前几行。堆栈用一个值初始化。我遇到的问题是我需要获取堆栈顶部元素的值,并且我还需要在之后立即将该元素从堆栈中弹出,但是 top() 函数返回对顶部值的引用。当我从引用中弹出值时,它就不再有用了。还有另一种方法可以从堆栈中获取值,然后立即将其弹出吗?我的错误是:s_move 未在此范围内声明。

最佳答案

这会很好地工作:

unsigned int index = s_move.top();

因为 index 是一个左值。使用 top() 返回的引用进行复制。
一旦你有一个弹出顶部的拷贝将不会影响索引。

另一个问题:

My error is: s_move was not declared in this scope.

是因为代码不知道对象s_move
也许您忘记包含适当的头文件。

关于c++ - STL 堆栈和 top() 函数的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19017094/

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