Newsgroup: it.comp.lang.c++
Titolo: null vector<>

Ciao.
Non ricordo questa cosa.
Ho una funzione che ritorna un vector<MioTipo>.
Concettualmente questo vector potrebbe essere nullo,
in tal caso cosa ritorno?
-- 
There are three kinds of lies: Lies, Damn Lies, and Statistics.
		-- Disraeli

 in tal caso cosa ritorno?
Un vector<MioTipo>?
Kiuhnm



Ops, scritto male, è un vector<MiaClasse>, diciamo ;)
E' un vettore di oggetti definiti da MiaClasse.
-- 
There is a certain impertinence in allowing oneself to be burned for an
opinion.
		-- Anatole France

 E' un vettore di oggetti definiti da MiaClasse.
Comunque mi spiego meglio.
const vector <MiaClasse> AltraClasse::getVector()
{
  if (PuntatoreAoggetto!=NULL) 
  return PuntatoreAoggetto->getVector();
}
PuntatoreAoggetto è un campo di AltraClasse.
Vorrei mettere un "else", ma come specificare un vector nullo
nel caso PuntatoreAoggetto sia NULL?
-- 
Harris's Lament:
	All the good ones are taken.

 E' un vettore di oggetti definiti da MiaClasse.
Volevo dire che se definisci f come funzione che restituisce un 
vector<quello_che_vuoi> è chiaro che devi restituire in ogni caso un 
vector<quello_che_vuoi>, no?
Nessuno tuttavia t'impedisce di definire f diversamente.
Potresti per es. restituire un ptr a un vector o una struttura 
pair<have_vector, vector> o altro ancora.
Presumo che con vettore nullo tu non intenda il vettore vuoto, giusto?
Comunque esistono infiniti modi di risolvere il tuo problema.
Kiuhnm

 
Un puntatore ad un std::vector<MioTipo>, anche se probabilmente non e' 
la soluzione ideale.
In alternativa un std::vector<MioTipo> vuoto.
Oppure passi il vector come parametro e restituisci un bool.
Oppure... potrebbero esserci altri modi, ma dipende dal contesto.
--
Roal Zanazzi



Grazie a te e a Kiuhnm dei consigli, forse alla fine rimango sul vector
vuoto. Mi chiedevo se esistesse il concetto di "nullo" per un vector, ma
semplicemente č il vettore vuoto. Il mio dubbio deriva dal fatto che
sono freddo col C++, utilizzo piů C ultimamente, ove un vettore č
realizzato con un puntatore, e quindi ha senso dire "NULL", ma non č
certo la stessa cosa con i vector.
-- 
Never worry about theory as long as the machinery does what it's
supposed to do.
		-- R. A. Heinlein

 vuoto. Mi chiedevo se esistesse il concetto di "nullo" per un vector, ma
Vado a memoria:
vector<MioTipo> v;
[...]
if (v.empty()) {
   cout << "Il vettore è vuoto." << endl;
}
Ciao
  Andrea

 nel caso PuntatoreAoggetto sia NULL?
Depende della significazione di un vector nullo. Se basta un
vector vuoto, non c'e problema. Se no, bisogna ritorna o bene un
puntatore al vector, che può essere null, o un
    Fallible< vector< MiaClasse > >.
Se bisogna assolammente di una copia del vector, Fallible
convienne; se no, penso che il puntatore è la soluzione.
--
James Kanze                                           GABI Software
Conseils en informatique orientée objet/
                   Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, 
+33 (0)1 30 23 00 34

 certo la stessa cosa con i vector.
Se vuoi un oggietto "nul", esista formelamente in C++ solo per i
puntatori. Se no, c'è la classa Fallible, di Barton e Nackman.
