Utilisation de la STL
Résolu/Fermé
PasqualiniG
Messages postés
5
Date d'inscription
lundi 16 juin 2014
Statut
Membre
Dernière intervention
19 juin 2014
-
16 juin 2014 à 12:29
sambia39 Messages postés 610 Date d'inscription vendredi 31 juillet 2009 Statut Membre Dernière intervention 9 février 2023 - 19 juin 2014 à 17:42
sambia39 Messages postés 610 Date d'inscription vendredi 31 juillet 2009 Statut Membre Dernière intervention 9 février 2023 - 19 juin 2014 à 17:42
A voir également:
- Utilisation de la STL
- Notice d'utilisation - Guide
- Utilisation chromecast - Guide
- La ressource demandée est en cours d'utilisation - Forum Téléphones & tablettes Android
- Vous avez utilisé ce numéro de téléphone à de trop nombreuses reprises - Forum Gmail
- Votre compte a été désactivé pour violation de nos conditions d’utilisation - Guide
5 réponses
sambia39
Messages postés
610
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
9 février 2023
49
17 juin 2014 à 11:57
17 juin 2014 à 11:57
Bonjour,
plus simple, utilise un tableaux de fonction et part la suite dans tes sous méthodes tu pourras faire ton choix de vecteur par exemple
à bientôt
plus simple, utilise un tableaux de fonction et part la suite dans tes sous méthodes tu pourras faire ton choix de vecteur par exemple
à bientôt
PasqualiniG
Messages postés
5
Date d'inscription
lundi 16 juin 2014
Statut
Membre
Dernière intervention
19 juin 2014
18 juin 2014 à 11:08
18 juin 2014 à 11:08
Ce n'est pas tout à fait la réponse que j'attendais.
Je crois avoir trouver une solution.
Il suffit dans le sous-programme de décider suivant un critère, par exemple, si bCube est une variable booléenne, d'écrire :
if(bCube == true) vSommets = vSommetsCube.
if(bCube == false) vSommets = vSommetsOcta;
Je crois avoir trouver une solution.
Il suffit dans le sous-programme de décider suivant un critère, par exemple, si bCube est une variable booléenne, d'écrire :
if(bCube == true) vSommets = vSommetsCube.
if(bCube == false) vSommets = vSommetsOcta;
ElementW
Messages postés
4816
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 228
18 juin 2014 à 13:08
18 juin 2014 à 13:08
Le désavantage c'est que ça grille la performance si ton vector contient beaucoup d'élément, car l'opérateur
Si tu ne modifies pas vSommets ou comptes modifier le vector qu'il désigne, utilise un pointeur:
Les
=copie le contenu en effaçant le précédent.
Si tu ne modifies pas vSommets ou comptes modifier le vector qu'il désigne, utilise un pointeur:
std::vector<TYPE> *vSommets = bCube ? &vSommetsCube : vSommetsOcta;
Les
?et
:c'est un if compacté, appelé l'opérateur ternaire.
sambia39
Messages postés
610
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
9 février 2023
49
18 juin 2014 à 14:11
18 juin 2014 à 14:11
Bonjour @PasqualiniG pourquoi ?
si tu peut faire comme dit @gravgun à peut prés en utilisant les opérateurs ternaire. et pas besoin de faire le teste
Ceci dit tu @gravgun a raison car tu es en (O(1)) (partant de ton algo) et tu fait de l'instantané donc le mieux est bien un pointeur
à bientôt
if(bCube == true) vSommets = vSommetsCube. if(bCube == false) vSommets = vSommetsOcta;
si tu peut faire comme dit @gravgun à peut prés en utilisant les opérateurs ternaire. et pas besoin de faire le teste
true ou false
return ( (bCube) ? a:b);
Ceci dit tu @gravgun a raison car tu es en (O(1)) (partant de ton algo) et tu fait de l'instantané donc le mieux est bien un pointeur
à bientôt
PasqualiniG
Messages postés
5
Date d'inscription
lundi 16 juin 2014
Statut
Membre
Dernière intervention
19 juin 2014
18 juin 2014 à 13:39
18 juin 2014 à 13:39
Merci, c'est exactement ce que je cherchais.
sambia39
Messages postés
610
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
9 février 2023
49
18 juin 2014 à 14:14
18 juin 2014 à 14:14
:)
PasqualiniG
Messages postés
5
Date d'inscription
lundi 16 juin 2014
Statut
Membre
Dernière intervention
19 juin 2014
18 juin 2014 à 16:13
18 juin 2014 à 16:13
En fait je n'ai pas réussi à accéder à un élément du vecteur.
Pour le vecteur d'origine vSommetsCube, il suffit de aElement = vSommetsCube[i];
comment faire avec vSommets ?
Merci.
Pour le vecteur d'origine vSommetsCube, il suffit de aElement = vSommetsCube[i];
comment faire avec vSommets ?
Merci.
ElementW
Messages postés
4816
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 228
18 juin 2014 à 16:16
18 juin 2014 à 16:16
(*vSommetsCube)[i], c'est ça le désavantage des pointeurs... Ou alors utilise une autre fonction (voire une fonction lambda) avec une référence, comme ça:
void faire_traitement(std::vector<TYPE> &vSommetsCube) { ... aElement = vSommetsCube[i] ... } void demarrer_traitement() { faire_traitement(bCube ? &vSommetsCube : vSommetsOcta); }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
PasqualiniG
Messages postés
5
Date d'inscription
lundi 16 juin 2014
Statut
Membre
Dernière intervention
19 juin 2014
19 juin 2014 à 11:39
19 juin 2014 à 11:39
J'ai l'impression qu'il n'y a pas de solution aussi simple que je l'imaginais.
Ce qui me surprend c'est que vSommets->size() donne le bon résultat. C'est à, dire qu'il donne bien le nombre d'éléments de vSommetsCube ou de vSommets Octa.
Dans le cas particulier qui me concerne les vecteurs sont de petite taille, 8 et 6 fois 3 "double". Je pense que écrire vSommets = vSommetsCube prendra finalement un temps négligeable dans la durée dub traitement.
Merci d'avoir porter attention à mon problème.
Ce qui me surprend c'est que vSommets->size() donne le bon résultat. C'est à, dire qu'il donne bien le nombre d'éléments de vSommetsCube ou de vSommets Octa.
Dans le cas particulier qui me concerne les vecteurs sont de petite taille, 8 et 6 fois 3 "double". Je pense que écrire vSommets = vSommetsCube prendra finalement un temps négligeable dans la durée dub traitement.
Merci d'avoir porter attention à mon problème.
sambia39
Messages postés
610
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
9 février 2023
49
19 juin 2014 à 17:42
19 juin 2014 à 17:42
Bonjour je n'ai pas bien compris, que veux-tu dire par temps négligeable de traitement
à bientôt
à bientôt