#include <iostream>
#include <list>
#include <algorithm>
int main()
{
std::list<int> numbers = {1, 3, 0, -8, 5, 3, 1};
auto positionInMiddle = std::find(numbers.begin(), numbers.end(), -8);
std::sort(positionInMiddle, numbers.end()); // This doesn't work,
// Needs random access iterator.
numbers.sort(); // This sorts the entire list.
for (int i : numbers)
std::cout << i << std::endl;
return 0;
}
使用できるトリックはありますか?たとえば、リスト内の 2 つのノードを交換するメソッドがあれば、mergesort を使用できます。