I ont le code suivant:la boucle C de travers les objets et obtenir leur adresse
vector<shape*> triangle_ptrs;
for (auto x : triangles)
triangle_ptrs.push_back(&x);
triangle
est une classe dérivée de shape
classe, et triangles
est un std::vector
de triangles:
std::vector<triangle> triangles;
I besoin de sauvegarder les adresses des triangles, mais comme je boucle la collection, leurs adresses semblent être les mêmes. Comment puis-je contourner cela?
'x' est une copie du triangle que vous bouclez. Utilisez 'auto & x' pour obtenir une référence au triangle d'origine et obtenir le pointeur que vous voulez. – nwp
Veuillez étendre votre publication avec un [exemple minimal, vérifiable et complet] (https://stackoverflow.com/help/mcve). –
'auto & x' au lieu de' auto x' dans la boucle à distance – Raxvan