如果我有这样的基本列表:
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?
答案 0 :(得分:3)
使用:std::list::insert
和std::advance
auto it = mylist.begin();
std::advance(it,4); //locate the position
mylist.insert(it,8); //insert the element
答案 1 :(得分:1)
如果您的列表按照示例中的比较条件排序,则此方法应该有效。该列表还可能包含重复项:
mylist.insert(std::upper_bound(mylist.rbegin(), mylist.rend(), 3).base(), 8);
std::upper_bound
将迭代器返回到第一个位置,其中比较的值大于3
,std::insert
在该位置插入8
。