Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 正在加载队列而不是列表_C++_List_Queue - Fatal编程技术网

C++ 正在加载队列而不是列表

C++ 正在加载队列而不是列表,c++,list,queue,C++,List,Queue,我有一个实现,可以通过std::queue或std::list来完成。 我用哪一个有区别吗std::queue的函数似乎较少,因此它比std::list更轻 似乎功能较少,所以更轻 更多的功能不会使对象更重。我会使用在您的场景中最有意义的集合。如果您总是以先进先出的方式访问它,那么std::queue将是合适的。如果需要双链接列表功能,请使用std::list 似乎功能较少,所以更轻 更多的功能不会使对象更重。我会使用在您的场景中最有意义的集合。如果您总是以先进先出的方式访问它,那么std::q

我有一个实现,可以通过
std::queue
std::list
来完成。 我用哪一个有区别吗
std::queue
的函数似乎较少,因此它比
std::list
更轻

似乎功能较少,所以更轻

更多的功能不会使对象更重。我会使用在您的场景中最有意义的集合。如果您总是以先进先出的方式访问它,那么
std::queue
将是合适的。如果需要双链接列表功能,请使用
std::list

似乎功能较少,所以更轻

更多的功能不会使对象更重。我会使用在您的场景中最有意义的集合。如果您总是以先进先出的方式访问它,那么
std::queue
将是合适的。如果需要双链接列表功能,请使用
std::list

我用哪一个有区别吗

是的,在几个方面。主要考虑的是可读性:通过使用<代码> STD::DeQue/Cuff>您向您的代码的读者传达您只在容器的两端而不是在中间插入和删除的意图。当您阅读其他人的代码时,了解这一点是非常好的

第二个考虑事项是容器本身的实现:与列表不同,列表单独分配和存储其元素,
std::deque
将其元素存储在块中以节省空间。这可能会减少容器的占用空间,和/或使其稍快一些。另一方面,在遍历整个队列时,可能存在效率低下的问题

但是,在初始设计过程中,效率考虑不应该成为一个因素,因为这是一个优化问题

我认为最好的方法是争取最好的可读性:使用容器以尽可能干净的方式将您的意图传达给代码的读者

我用哪一个有区别吗

是的,在几个方面。主要考虑的是可读性:通过使用<代码> STD::DeQue/Cuff>您向您的代码的读者传达您只在容器的两端而不是在中间插入和删除的意图。当您阅读其他人的代码时,了解这一点是非常好的

第二个考虑事项是容器本身的实现:与列表不同,列表单独分配和存储其元素,
std::deque
将其元素存储在块中以节省空间。这可能会减少容器的占用空间,和/或使其稍快一些。另一方面,在遍历整个队列时,可能存在效率低下的问题

但是,在初始设计过程中,效率考虑不应该成为一个因素,因为这是一个优化问题


我认为最好的方法是争取最佳的可读性:使用容器,以尽可能干净的方式将您的意图传达给代码的读者。

这完全取决于您正在做什么……请参阅@Yuushi,是否可以使用::push或::pop实现特定的实现,这两种方法使用起来更轻松,还是无关紧要?你说我在做什么是什么意思?在什么方面?如果我在吃香蕉,那么排队的人会少一些吗???@sgar91:恕我直言,你为什么要花时间在帖子上加引号?有什么特别的好处吗?@navderm我的意思是,如果你不告诉我们你的问题,你期望什么样的访问模式,或者根本不发布任何代码,你的问题就毫无意义。额外的成员函数不会使数据结构“更重”(不管这意味着什么)。这完全取决于您正在做什么……请参阅@Yuushi,是否可以使用更轻的::push或::pop实现特定的实现,或者这无关紧要?你说我在做什么是什么意思?在什么方面?如果我在吃香蕉,那么排队的人会少一些吗???@sgar91:恕我直言,你为什么要花时间在帖子上加引号?有什么特别的好处吗?@navderm我的意思是,如果你不告诉我们你的问题,你期望什么样的访问模式,或者根本不发布任何代码,你的问题就毫无意义。额外的成员函数不会使数据结构“更重”(无论这意味着什么)。
deque
,而不是
dequeue
:)@us2012你说得对,非常感谢
deque
,而不是
dequeue
:)@us2012你说得对,非常感谢!