puedo pensar en tres maneras de llenar un Supongamos std::vector
diferentes maneras de llenar un vector
tenemos
vector<int> v(100, 0);
Entonces yo quiero que mantenga (1, 1, 1). Podemos hacer:
v.clear();
v.resize(3, 1);
O
v = vector<int>(3, 1);
Y aprendí otro enfoque:
vector<int>(3, 1).swap(v);
primera pregunta es: ¿Está alguno de ellos el mejor enfoque?
Segunda pregunta: supongamos que v
fue declarado fuera de la función principal. De acuerdo con esto answer, la memoria se asignará en el segmento de datos. Si utilizo el segundo o tercer enfoque, ¿se asignará la memoria a la pila?
Eso no es cierto en absoluto. Las matrices primitivas asignan su memoria donde sea que estén declaradas. 'vector' siempre asignará el montón. int []! = vector. – Puppy