我有一个基础问题。我一直读到C++的 std::list
容器在插入元素时,无论是在开头、结尾还是中间,都具有常数时间:
那么在 std::list
中直接将一个元素插入到中间位置,应该如何操作?
是这样吗?
std::list<int> l;
l.push_back(10);
l.push_back(20);
l.push_back(30);
l.push_back(40);
l.push_back(50);
l.push_back(60);
l.insert( l.end()- l.begin() /2 ); //? is this
// inserting directly in the middle?
当我们说“在中间插入”时,我们是否真的意味着我们节省了线性时间,以便从列表开头到达所需点(通过遍历所有中间链接元素逐个进行)?