Nella moderna C++ possiamo inizializzare un vettore come questo:Creazione di uno shared_ptr di vettore in C++
std::vector<int> v = { 1, 2, 3, 4, 5 };
Ma se provo la creazione di un puntatore intelligente per un vettore, questo non verrà compilato:
auto v = std::make_shared<std::vector<int>>({ 1, 2, 3, 4, 5 });
Esiste un'alternativa migliore del ricorso a push_back
s dopo la creazione?
Perché vuoi il vettore sull'heap? I dati nel vettore sono già nell'heap, quindi la dimensione del vettore sullo "stack" è piuttosto ridotta. – NathanOliver
C'è un vettore membro 'classe' privato in una classe e lo espongo ad altre classi tramite un getter. Quindi, invece di passarlo per valore, restituisco un 'shared_ptr' ad esso. – Crossfire
Quindi restituirlo per riferimento. – NathanOliver