Ho questo cod
codice:
cout << "Quanti numeri?: ";
cin >> numeri;
cout << "\n"<<endl;
cout << "Quante combinazioni?: ";
cin >> combinazioni;
cout << "\nNumero iniziale?: ";
cin >> inizio;
cout << "\nNumero finale?: ";
cin >> fine;
finale=fine-(inizio+1);
che eseguendo mi genera le combinazioni volute nel range desiderato e limitato dai valori scelti da riga di comando inizio e fine. Lo vorrei modificare al fine di avere in finale non gli elementi nel range sopradetto ma definiti da riga di comando ad esempio mediante un semplice copia incolla...
Es.
il cout dovrebbe cambiare da "Numero iniziale? e Numero finale?" in
"numeri desiderati per la generazione delle combinazioni?"
In tal modo dovrebbe bastare un semplice copia incolla della lista di numeri intervallati da virgola voluti sulla riga richiesta dal comando cin per popolare correttamente il vector finale con i numeri desiderati.
Ora nell'esempio sopra postato finale è un int mentre io lo dovrei trasformare in vector
e l'ho già provato a fare così:
codice:
using namespace std;
//funzione per popolare il vector finale per prova... con valori fissi
template <class T>
void init(vector<T>& v,unsigned int n, ...)
{
T temp;
va_list vl;
va_start(vl,n);
for(unsigned int j=0;j<n;j++)
{
temp=va_arg(vl,T);
v.push_back(temp);
}
va_end(vl);
}
vector<int<finale>;
//inizializzazioe di finale con i valori fissi di prova...
init(finale,10,3,5,7,9,11,12,14,18,21,25);
//e non darebbe nessun errore se non durante l'operazione di geenrazione combinazione
//random con i valori voluti ovverosia gli elementi di finale...
//Infatti la vecchia operazione si riferiva d interi e non ad un vector...
numero = rand() % finale+2 + inizio;
//La domanda è... come posso trasformare questa funzione di generazione random per interi // in una funzione analoga che funzioni per il vector finale?
Provo a riformulare la domanda che ho posto nel codice in altri termini...
Come posso dato un vector popolato di valori interi definiti... estrapolare da questo un valore in modo random (casuale) e assegnarlo ad una variabile int numero?
Es. ho un vector numeridisponibili contenente: 10,3,5,7,9,11,12,14,18,21,25
Voglio che la variabile int numero assumi un valore casuale tra quelli disponibili nel vector numeridisponibili... E quindi dovrà essere in modo random o 10 o 3 o 5 o 7 o 9 o 11 o 12 o 14 o 18 o 21 o 25 ma non ad es. 89
Grazie agli esperti/e e buona domenica