Posortować tylko iteratory?

0
vector<int> c;

Czy można posortować przy użyciu standardowych algorytmów typu std::sort wyłącznie iteratory coś w stylu std::remove tak zeby kontener pozostał nienaruszony?
Chciałbym uzyskać iterator skaczący po całym kontenerze w odpowiedniej kolejnosci.

2

Chciałbyś coś w stylu vector<vector<int>::iterator> lub vector<int*> posortowany w/g Twojego klucza? Jeśli tak to nie jest to specjalnie trudne.

	vector<int> foo(11);
	iota(foo.begin(), foo.end(), -5);

	sort(foo.begin(), foo.end(), [](int l, int r){ return abs(l) < abs(r); });

	vector<int const*> bar(foo.size());
	transform(foo.cbegin(), foo.cend(), bar.begin(), [](auto& i){ return &i; });

	sort(bar.begin(), bar.end(), [](auto l, auto r){ return *l < *r; });

http://melpon.org/wandbox/permlink/sg0SHYJ323Yp4Gje

1 użytkowników online, w tym zalogowanych: 0, gości: 1