stefanoferrario ha scritto:
Il problema è la lentezza nell'esecuzione... ho un vettore di 108505100
Ma se tolgo l'erease come faccio poi a cancellare la stringa che non supera il controllo?
Cosa è per te "lentezza di esecuzione"?
E quanto sono lunghe, le stringhe?
---
L'erase toglilo del tutto, e fai tutti i test senza di esso.
Per l'eliminazione ti farai un vettore a parte dove memorizzerai l'elenco delle stringhe da cancellare.
Solo dopo la fase di elaborazione le cancellerai, tutte in un colpo solo.
Ma devi capire se
- semplicemente i dati sono così tanti da elaborare che non c'è molto da fare (a parte un programma multithread)
- è lenta la fase di accesso ai singoli caratteri
- è lenta la cancellazione
In sostanza devi "smontare" il tuo programma per esaminarne i singoli "pezzi".
Dal momento che utilizzi oggetti non fatti da te, di cui quindi non sai nulla, conviene operare partizionando il dominio.
O, se preferisci, "fanculizzando" le stringhe C++ (cosa in generale buona e giusta, nel tuo caso)
---
Chiaramente, essendo in una situazione ideale, puoi partizionare (più precisamente shardare orizzontalmente) e fare tanti thread quanti core hai, per elaborazione parallela.
Ma è il passo successivo