Domanda

Ho un elenco collegato di cui voglio ordinare una parte, ad esempio:

std::sort(someIterator, otherIterator, predicate);

std :: sort richiede iteratori ad accesso casuale, quindi questo approccio non funziona. Esiste una specializzazione std :: list :: sort, ma che può solo ordinare l'intero elenco. Non credo di avere abbastanza accesso ai membri della lista per scrivere qualcosa da solo.

C'è un modo per farlo senza cambiare, diciamo, vettore?

È stato utile?

Soluzione

Che ne dici di sganciare la parte dell'elenco che vuoi ordinare, in un elenco autonomo, quindi utilizzare l'ordinamento dell'elenco specializzato, quindi ricollegarlo all'elenco originale?

Altri suggerimenti

Sì, ma dovrai utilizzare un unisci ordinamento .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top