有很多问题表明应该始终使用向量,但在我看来,对于需要存储“最后n个项目”的情况,列表可能更好。
例如,假设我们需要存储最近看到的最后5项:
迭代0:
3,24,51,62,37,
然后在每次迭代中,索引为0的项被删除,并将新项添加到末尾:
迭代1:
24,51,62,37,8
迭代 2:
51,62,37,8,12
对于这种情况,对于向量来说,复杂度将会是O(n),因为我们需要复制n个项,但对于列表来说,应该是O(1),因为每次迭代我们总是只是从头部裁剪并添加到尾部。
我的理解正确吗?这是std::list的实际行为吗?