如果我有这样的基本列表:
std::list<int> mylist;
mylist.push_front(1);
mylist.push_front(2);
mylist.push_front(3);
mylist.push_front(4);
mylist.push_front(5);
mylist.push_front(6);
mylist.push_front(7);
如何在 3 和 4 之间插入数字 8?
使用 :std::list::insert
和std::advance
auto it = mylist.begin();
std::advance(it,4); //locate the position
mylist.insert(it,8); //insert the element
如果您的列表按照示例中的比较标准进行排序,这应该可以工作。该列表还可能包含重复项:
mylist.insert(std::upper_bound(mylist.rbegin(), mylist.rend(), 3).base(), 8);
std::upper_bound
将迭代器返回到比较值大于的第一个位置,3
并在该位置std::insert
插入8
。