c++ - 如果队列为空,dequeue 应该返回什么

标签 c++ queue

我正在用 C++ 编写一个队列(我不应该使用 STL)。我的出队函数需要返回它从我的队列中删除的整数。但是,如果队列为空,它应该返回什么?我应该抛出异常吗?如果是,抛出哪个异常?还是我应该返回 null(但这不会让人感到困惑,因为它本质上是零,并且看起来像是我返回了 0)?

如有任何帮助,我们将不胜感激。

最佳答案

抛出一个异常似乎是最合适的,因为用户应该总是知道你的队列中还有一个元素,或者首先通过调用 .empty() 检查它(假设你有这样一个方法)。

对于你抛出的什么异常的问题:std::logic_error对我来说似乎很合适,使用“what”字符串指向您的类名、调用的方法以及队列为空。

关于c++ - 如果队列为空,dequeue 应该返回什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19694779/

相关文章:

函数参数的 C++ 类模板推导 (P0091R0)

queue - TensorFlow 队列关闭后可以重新打开吗?

python - 安全存储多线程网络抓取数据

java - 请帮助我发现我的错误。我得到一个空队列,但我希望它的项目数量是原始队列的一半

SQL Server 进程队列竞争条件

java - LinkedBlockingQueue 查看特定位置

c++ - FastCGI 应用程序 - 如何获取监听套接字句柄?

c++ - 我的 g++ 使用 vector<weak_ptr> erase() 方法生成奇怪的警告

c++ - 在 Qt 中计时事件的最佳方式

c++ - 在迭代器中从 std::list 中移除一个条目