Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [C++] Problema con funzione sort()

    Salve.
    Sto combattendo da giorni con la funzione sort() e speravo che qualcuno poteva darmi una mano.

    Sto usando questa funzione per ordinare un vettore di bitset secondo un preciso criterio.

    Quindi uso la sintassi:

    sort(v.begin(),v,end(),confronta)

    dove confronta è una funzione bool che restituisce true o false a seconda di chi va prima.
    True se il primo valore che prende la funzione va prima del secondo, False altrimenti.

    Ora visto che non funziona perchè non porta a termine l'esecuzione l'ho sostituita con una funzione quadratica di ordinamento:

    bool c;
    for(int i=0;i<n;i++)
    for(int j=i+1;j<n;j++){
    c=confronta(v[i],v[j]);
    if (c==false) swap(v[i],v[j]);
    }

    in modo da eseguire comunque l'ordinamento ma in tempo quadratico.
    In questo modo ottengo l'ordinamento che voglio, quindi confronta da me usata è esatta ai fini dell'ordinamento.

    Adesso però non capisco perchè la mia sort() che usa la stessa funzione non va. O meglio non va per tutti i valori che inserisco, ma solo per alcuni.

    Qualcuno sa aiutarmi?

  2. #2
    Non so se può essere d'aiuto ma ho trovato l'errore che mi da quando si viene a bloccare la funzione sort().

    This application has requested the runtime to terminate it in an unusual way.
    Please contact the application's support team for more information.

    Please help me!

  3. #3
    Senza il codice della funzione "confronta" mi par difficile darti una mano. Meglio poi sarebbe, se ci fosse anche il resto del codice, non credi?

  4. #4
    Si...il fatto è che è un pò lungo.

    Più che altro volevo sapere se la sort() ha qualche proprietà, limitazione o caratteristica che ne contraddistingue il funzionamento...

    Magari qualcosa che può mandare in palla l'esecuzione a runtime, visto che la funzione confronta usata con la funzione quadratica con swap di sopra, funziona perfettamente.

    Ciao

  5. #5

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.