daniel007boss (Normal User)
Newbie
Messaggi: 9
Iscritto: 19/01/2018
|
ciao, mi è stato chiesto di fare un programma che dato un vettore contenenti dei nomi e un altro contente delle date, devo saper poi ordinare i nomi in ordine di data.
io essendo abbastanza inesperto pensavo di usare strcat/strncat per unire le due stringhe e poi ordinarla con sort ma ovviamente non può essere perchè strcat/strncat non si può usare..qualcuno mi può aiutare?
Ultima modifica effettuata da lumo il 19/01/2018 alle 20:14 |
|
Poggi Marco (Member)
Guru
Messaggi: 969
Iscritto: 05/01/2010
|
Ciao !
Hai già abbozzato un programma, anche se incompleto ?
Le date come le memorizzi (stringhe, vettori di char, time_t, ecc.) ?
Per utilizzare il metodo sort, devi avere un unico vettore che memorizza oggetti. Quindi è necessario implementare una classe con i campi nome, data.
Se hai due vettori, allora l'unica soluzione è di creare un algoritmo di ordinamento, che lavori sugli indici di entrambi i vettori.
Ultima modifica effettuata da Poggi Marco il 19/01/2018 alle 20:30 |
|
lumo (Member)
Expert
Messaggi: 449
Iscritto: 18/04/2010
|
Ho messo un titolo più descrittivo.
La tua idea con strcat non l'ho capita molto, in teoria dovrebbe bastare il sort sulle date. Ovviamente la difficoltà è che devi anche mantenere l'informazione su come erano ordinate in precedenza, oppure devi lavorare contemporaneamente sull'array di date e quello di nomi.
Devi darci più informazioni come dice Marco.
|
|
daniel007boss (Normal User)
Newbie
Messaggi: 9
Iscritto: 19/01/2018
|
Postato originariamente da Poggi Marco:
Ciao !
Hai già abbozzato un programma, anche se incompleto ?
Le date come le memorizzi (stringhe, vettori di char, time_t, ecc.) ?
Per utilizzare il metodo sort, devi avere un unico vettore che memorizza oggetti. Quindi è necessario implementare una classe con i campi nome, data.
Se hai due vettori, allora l'unica soluzione è di creare un algoritmo di ordinamento, che lavori sugli indici di entrambi i vettori.
|
il programma che pensavo è tipo
#include <iostream>
#include <string.h>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
cout<<"questo programma ordina cinque nomi "<<endl;
string nomi[5];
string date[5];
for(int i=0; i<5; i++)//con questo ciclo for regolo quanti nomi posso inserire
{
cout << "inserisci i nomi da utilizzare " << i+1 << " : ";//inserimento
cin >> nomi;
}
for(int j=0; j<5; j++)//con questo ciclo for regolo quanti nomi posso inserire
{
cout << "inserisci i nomi da utilizzare " << j+1 << " : ";//inserimento
cin >> date[j];
}
strncat(nomi,date);
sort(date, date+5);//ordina i nomi
for (int i=0; i<5; i++)//vale come cosa estetica e bla bla si può omettere
cout << i+1 << " - " << nomi << endl;
system("pause");
return 0;
}
Ultima modifica effettuata da daniel007boss il 19/01/2018 alle 21:20 |
|
daniel007boss (Normal User)
Newbie
Messaggi: 9
Iscritto: 19/01/2018
|
Postato originariamente da lumo:
Ho messo un titolo più descrittivo.
La tua idea con strcat non l'ho capita molto, in teoria dovrebbe bastare il sort sulle date. Ovviamente la difficoltà è che devi anche mantenere l'informazione su come erano ordinate in precedenza, oppure devi lavorare contemporaneamente sull'array di date e quello di nomi.
Devi darci più informazioni come dice Marco. |
lo scopo era circa
v[mario,simone,luca,lucia,maria]
v[1999,1896,1654,2003,1945]
e quindi poi collegare ogni data al rispettivo nome
e come cout ottenere
1654-luca
1896-simone
1945-maria
1999-mario
2003-lucia |
|
Mikelius (Member)
Expert
Messaggi: 525
Iscritto: 14/04/2017
|
Potresti almeno evitare le bestemmie nei commenti del codice?
|
|
Poggi Marco (Member)
Guru
Messaggi: 969
Iscritto: 05/01/2010
|
L funzione strncat() serve a concatenare due vettori di char.
Come già detto devi implementare un algoritmo di ordinamento (esempio https://it.wikipedia.org/wiki/Bubble_sort).
Ovviamente gli scambi di posizione, quando necessari, vanno fatti contemporaneamente sui due vettori, tra gli stessi indici.
|
|
daniel007boss (Normal User)
Newbie
Messaggi: 9
Iscritto: 19/01/2018
|
Postato originariamente da Mikelius:
Potresti almeno evitare le bestemmie nei commenti del codice? |
hai perfettamente ragione mi scuso non mi ero accorto (dato che non ero l'unico a lavorare su quel programma).
mi scuso ancora. |
|
Mikelius (Member)
Expert
Messaggi: 525
Iscritto: 14/04/2017
|
Perchè strncat() non puoi usarla? Specifiche del problema?
|
|