面试的时候,他们问:向量遍历和列表遍历哪个更快,输出值到控制台?我们如何绕过,没有具体说明。我回答说没有区别。我说得对吗?说明:有一个向量容器,我们可以在其上运行,例如,使用迭代器:
std::vector<int> vector{1, 2, 3};
for (auto it = vector.begin(); it != vector.end(); ++it)
{
qDebug() << *it;
}
有一个容器列表,我们还在其上运行一个迭代器:
std::list<int> values{1, 2, 3};
for (auto it = values.begin(); it != values.end(); ++it)
{
qDebug() << *it;
}
哪个循环会运行得更快,为什么?使用其他绕过这些容器的方法,哪个循环会运行得更快?这些周期不在采访中,为了清楚起见,我添加了它们。
PS 在这个问题被问到之后:什么是缓存?也许第二个问题与第一个问题有某种关系?如果不缓存整个vector或list,容器遍历时间会不会增加?