Sono nuovo al C++ e sfortunatamente non riesco a smettere di pensare in C# (la mia lingua precedente). Ho letto alcuni libri, forum e il sito web di riferimento C++, ma non sono riuscito a trovare una risposta alla mia domanda, quindi ho pensato che potrei provare qui prima di arrendermi e scrivere qualcosa di brutto.C++ giusto modo di restituire una collezione generica di tipo
Ok, possiamo iniziare. Ho una classe con un metodo astratto succesorsFunction e mi piacerebbe che restituisse una raccolta di puntatori allo stato . Non voglio forzare gli implementatori a un contenitore specifico; Preferisco lasciarli scegliere (vettore, elenco, ecc.).
in modo che appaia in questo modo:
class Problem
{
public:
virtual list<const State*>::iterator succesorsFunction(const State &state, list<const State*>::iterator result) const = 0;
};
il problema qui è l'uso esplicito della lista. Come lo fai in C++?
ho pensato di usare i modelli, ma poi ho incontrato due problemi: 1) Sembra che non si può farlo con metodi astratti (o mi sbaglio) 2) Come faccio a dire il modello che dovrebbe contenere i puntatori? Stato?
gamme di tipo-cancellati di Boost.Range può aiutare qui. – Xeo
Puoi ampliare ciò che questa funzione dovrebbe raggiungere? Potrebbero esserci approcci alternativi. –
Quindi ti piacerebbe restituire qualcosa di analogo a 'IEnumerable'? –
svick