如果之前有人问过这个问题,很抱歉,我想知道std::vector::front()
的用途是什么。
是否有理由使用myvector.front()
而不是myvector[0]
或myvector.at(0)
发布于 2010-01-22 01:27:05
如果myvector的类型更改为另一种不可索引的数据类型,例如列表,则不必更改访问容器前端的代码。
发布于 2010-01-22 04:53:15
这样做提供了一种称为静态多态性的东西。
假设我使用queue类编写了一个算法。它有一个front()函数来获取队列的下一个元素,还有一个enqueue()函数来添加到队列的末尾。现在,假设我发现这个queue类写得很差,而且非常慢,我宁愿使用std::vector,它要快得多(我知道有一个std::queue,这只是一个例子)。如果获取std::vector的第一个元素的唯一方法是使用v,那么我必须遍历我的代码并将所有对front()的调用替换为。但是通过实现front(),std::vector现在可以替代我的queue类。我需要修改的唯一代码是算法中的容器类型。
https://stackoverflow.com/questions/2111314
复制相似问题