Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    [c++] Qual'è la funzione analoga di sort (in php)?

    Dovrei riuscire ad ordinare un file txt di questo tipo:

    2,3,87,60,34;
    1,35,12,90,70;
    45,32,47,89,90;

    in un relativo file ordinato in modo crescente:

    2,3,34,60,87;
    1,12,35,70,90;
    32,45,47,89,90;

    ci sono già riuscito con uno script python ma mi piacerebbe riuscire a fare tutto in c++
    Qual'è la funzione C++ analoga a sort del php?

    Very THANKS a tutti/e


  2. #2
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    non c'è.. esistono molti algoritmi di ordinamento.. merge sort, bubble sort, ecc..

    tutti già scritti in giro per la rete.. ciò che vuoi tu è un ordinamento di numeri o di stringhe? perchè la cosa in c++ è molto più complessa del php

    ps: un aiutino.. prendi le righe e le tratti come array di numeri ( tramite la itoa (mi pare) ) così da ordinare i numeri (che è onestamente più semplice

  3. #3
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    Sono numeri

    Originariamente inviato da Stoicenko
    non c'è.. esistono molti algoritmi di ordinamento.. merge sort, bubble sort, ecc..

    tutti già scritti in giro per la rete.. ciò che vuoi tu è un ordinamento di numeri o di stringhe? perchè la cosa in c++ è molto più complessa del php

    ps: un aiutino.. prendi le righe e le tratti come array di numeri ( tramite la itoa (mi pare) ) così da ordinare i numeri (che è onestamente più semplice
    Vorrei ordinamento di numeri per rispondere alla tua domanda.

    Grazie comunque


  4. #4
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    cerca bubble sort.. è uno dei più semplici e veloci.. oppure merge sort anche..

    su wikipedia trovi l'implementazione e su internet trovi molto codice a riguardo

  5. #5
    Se non ricordo male, visto che purtroppo da anni non uso C++, ci dovrebbe essere un template nella libreria <algorithm> che si chiama proprio sort la cui interfaccia è del tipo :

    sort(da , a )

    dove da e a sono puntatori (anzi iteratori) all'inizio e alla fine dell'array (o altra struttura dati qualsiasi) da ordinare.

    Cerca "Algorithm C++ STL"

  6. #6
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    se non erro però la sort si usa per i contenitori della libresia stl.. quindi per gli array non è usabile

  7. #7

    Re: [c++] Qual'è la funzione analoga di sort (in php)?

    Originariamente inviato da freetom
    Qual'è la funzione C++ analoga a sort del php?
    dai un'occhiata alla:
    codice:
    #include <stdlib.h>
    
         void
         qsort(void *base, size_t nmemb, size_t size,
             int (*compar)(const void *, const void *));

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Ma se non sbaglio il nostro amico sta utilizzando proprio i vector della libreria STL, quindi potrebbe ricorrere a sort() senza problemi...
    every day above ground is a good one

  9. #9
    codice:
            int x[10]={9,5,1,2,7,4,3,8,6,0};	
    
    	int* start = &x[0];//primo elemento
    	int* end = &x[10];//elemento successivo all'ultimo.
    
    	std::sort(start,end);
    sort funziona per gli array C, a patto che l'operatore '<' del tipo contenuto nell'array funzioni a dovere.

    Se ad esempio l'array fosse di stringhe C-style non funzionerebbe (cosa restituisce '<' applicato a due char* ?), se invece l'array fosse di oggetti std::string funzionerebbe tutto nuovamente.

    a differenza di qsort, con sort il compilatore sceglie in automatico la compare_function in funzione del tipo dei puntatori, rendendo il codice piu leggibile.

    PS: non ricordo se sort lavora con l'operatore '<' '<=' o '>' ... c'è scritto da qualche parte .

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 © 2026 vBulletin Solutions, Inc. All rights reserved.