0

如果我有这样的基本列表:

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?

4

2 回答 2

4

使用 :std::list::insertstd::advance

auto it = mylist.begin();

std::advance(it,4); //locate the position
mylist.insert(it,8); //insert the element
于 2013-10-24T19:41:16.927 回答
1

如果您的列表按照示例中的比较标准进行排序,这应该可以工作。该列表还可能包含重复项:

mylist.insert(std::upper_bound(mylist.rbegin(), mylist.rend(), 3).base(), 8);

std::upper_bound将迭代器返回到比较值大于的第一个位置,3并在该位置std::insert插入8

于 2013-10-24T19:38:44.453 回答