J'essaye de créer une liste/collection d'objets C++ en C++/CLI et j'ai essayé plusieurs façons mais rien ne semble fonctionner (erreurs à la compilation).Création d'une sorte de liste d'objets C++ en C++/CLI
J'ai essayé:
List<MyCppObject*> ^myList; //Does not allow non-.NET objects
ArrayList ^myList;
...
myList->Remove(myCppObject); //cannot convert parameter 1 from 'MyCppObject *' to 'System::Object ^'
Mes besoins:
1) La liste doit contenir C++ objets
2) J'ai besoin la possibilité de supprimer un objet particulier (par exemple vecteur ne fonctionnera pas parce que c'est seulement pousser/sauter du haut)
Question: Comment faire pour qu'une liste/collection d'objets C++ dans une fonction C++/CLI fonctionne avec la possibilité de supprimer facilement un objet particulier? Faites-moi savoir si quelqu'un voudrait des informations supplémentaires; Merci d'avance pour votre aide!
Rien de mal à appeler 'std :: vecteur :: effacement () ', ce n'est pas optimal en termes de performance si vous le faites beaucoup. Alternativement, 'std :: list ' a une insertion/effacement rapide n'importe où et n'invalide pas les itérateurs. –
'std :: vector :: erase()' est O (N), tout comme le CLR 'Liste .RemoveAt()' et 'ArrayList.RemoveAt()', donc si vous êtes satisfait des caractéristiques de performance de List , vous seriez heureux avec le vecteur. –
@Kerrek SB: non, il ne serait pas utilisé une tonne, donc la performance sage je suppose que ce serait bien. Mais comme je le vois maintenant, il ne prend qu'un index en paramètre (pas un objet)? Donc, je suppose que je devrais faire ma propre recherche pour trouver l'index, puis l'enlever? – developer