gpt4 book ai didi

c++ - 在空堆栈中使用 top

转载 作者:行者123 更新时间:2023-11-28 03:08:35 26 4
gpt4 key购买 nike

所以我有一个自定义堆栈类和一个顶级函数。我正在检查顶部是否为空,但在没有错误的情况下返回值时遇到了一些问题。

错误:“无法将 int 转换为 &int”

    dataType &top()
{
try
{
if (stackData.checkEmpty()== false)
{
throw stackData.size();
}
}
catch(...)
{
cout << "Stack size is zero. Can not retrieve top " << endl;
return stackData.size(); //***Where the problem is***
}

return stackData.back();
}

int size( ) const
{
return Size;
}

最佳答案

问题出在您的尺寸方法上。您必须返回右值或文字。 See this post对于不同设置中的相同问题。

评估你是否真的需要返回一个引用,因为当堆栈为空时,对栈顶元素的引用是没有意义的。最好遵循其他人的建议并在空堆栈上调用 top 时抛出异常,返回堆栈的大小几乎不可能区分空情况(即返回零)和存储零整数在堆栈中。

作为旁注,为简洁起见,这样写是否更好:

if (!stackData.checkEmpty())

if (stackData.checkEmpty()== false)

因为 checkEmpty() 已经返回一个 bool 值。这只是风格。

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

26 4 0
文章推荐: c++ - 如何为 Ctags 无法处理的 MSVC 文件夹的所有 C++ 头文件生成标签文件?
文章推荐: javascript - Fabric js animateColor函数未找到错误
文章推荐: javascript - 我需要在网页中单击 标记时调用 Javascript 函数来显示和隐藏
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com