begin process at 2012 05 29 13:18:19
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

Méthodes de la classe vector en C++


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Méthodes de la classe vector en C++

vendredi 29 février 2008 à 10:59:18 | Méthodes de la classe vector en C++

Rom1PL

Bonjour,
J'aurais deux petites questions au sujet des méthodes de la classe vector en C++.

1) J'utilise la fonction erase pour supprimer un élément de mon vecteur mais mon compilo me donne l'erreur suivante "Could not find a match for 'vector<Product*, allocator<Product*> >::erase(int)'.
voici le code de ma fonction qui pause problème :

void Basket::DeleteProduct(int indexProduct){
        SelectedProducts.erase(indexProduct);
        SelectedAmounts.erase(indexProduct);
        NumberOfItems = SelectedAmounts.size();
}

Je souhaite tout simple supprimer l'élément qui se trouve à l'index donné dans mes deux vecteurs SelectedProducts et SelectedAmount. En clerc je voudrais supprimer SelectedProducts[indexProduct] et SelectedAmounts[indexProduct].
J'ai pourtant vérifier sur des sites internets et la fonction erase utilise bien l'index de l'élément à supprimer en paramètre.


2) Mon autre question. Est-ce que quelqu'un sait s'il existe un équivalent de la fonction indexOf(ElementRecherché) des vecteurs JAVA en C++.  En fait j'ai un vecteur de pointeurs de Produit et j'aimerais une fonction qui me renvoi l'index d'une adresse de produit que je recherche dans mon vecteur.
Un truc du genre MonVecteurDeProduit.indexOf(&ProduitRecherché)

Merci beauoup d'avance.
vendredi 29 février 2008 à 11:09:28 | Re : Méthodes de la classe vector en C++

DeAtHCrAsH

Salut,

Pour ta question 1) regarde ici :
[ Lien ]

Pour ta question 2), il n'y a pas de fonction de ce genre à ma connaissance.

Shell

vendredi 29 février 2008 à 11:37:46 | Re : Méthodes de la classe vector en C++

Rom1PL

Je viens de jeter un coup d'oeil sur le lien que tu viens de me donner mais je ne parvient pas à trouver mon erreur. En effet ils disent bien que la fonction erase prend comme paramètre la position de l'élément qui doit être supprimé. Or c'est ce que je fait lorsque je fais SelectedProducts.erase(indexProduct);
J'ai également essayé de faire unSelectedProducts.erase(&Product); mais cela ne donne rien de mieux.
Merci beaucoup pour ton aide.
Si desfois tu vois l'erreur...

vendredi 29 février 2008 à 12:04:37 | Re : Méthodes de la classe vector en C++

DeAtHCrAsH

Il faut utiliser un itérateur. regarde bien leur exemple tu verras ton erreur.

Shell
vendredi 29 février 2008 à 12:30:30 | Re : Méthodes de la classe vector en C++

Rom1PL

Je suis désolé DeAtHCrAsH, j'ai beau analyser leur exemple et je ne vois pas mon erreur car mon indexProduct est déjà un itérateur il me semble, non ?
vendredi 29 février 2008 à 16:15:34 | Re : Méthodes de la classe vector en C++

nickydaquick

Membre Club

Salut
void Basket::DeleteProduct(vector<Product*>::iterator indexProduct){
        SelectedProducts.erase(indexProduct);
        SelectedAmounts.erase(indexProduct);
        NumberOfItems = SelectedAmounts.size();
}
je suis heureux de faire partie d'une grande famille ...!
vendredi 29 février 2008 à 17:11:16 | Re : Méthodes de la classe vector en C++

luhtor

Question 1
void Basket::DeleteProduct(int indexProduct){
        SelectedProducts.erase(SelectedProducts.begin() + indexProduct); // opérateur d'addition sur les itérateurs.
        SelectedAmounts.erase(SelectedProducts.begin() + indexProduct);
        NumberOfItems = SelectedAmounts.size();
}

Marche seulement pour certain type d'itérateur, notamment ceux des std::vector.

Question 2
normalement tu as la fonction std::find du header "algorithm". Il s'agira ici d'une comparaison entre pointeur par défaut. Le plus simple étant de refaire toi meme la fonction de recherche.

http://www.cplusplus.com/reference/algorithm/find.html
vendredi 29 février 2008 à 17:13:01 | Re : Méthodes de la classe vector en C++

luhtor

Tu corrigeras, j'ai fais une erreur de copié collé.
Et juste une remarque, un indice (ton indexProduct) n'a rien à voir avec un iterateur.


Cette discussion est classée dans : fonction, supprimer, vector, erase, indexproduct


Répondre à ce message

Sujets en rapport avec ce message

Vector Erase : problème [ par Clonk ] Bonjour,Voilà mon problème, j'utilise un vector pour gérer des aretes d'une figure géométrique, à un moment, je veux supprimer certains éléments dans vector et erase => mais pourquoi ca veut pas marcher !?!?!?!?!?! [ par sheorogath ] bjr a tousj'ai un petit probleme avec les vector:je declare un vector en variable globale de type que g moi meme definiet les element sont ajouter dyn probleme retour tableau [ par lenanttais44 ] Bonjour,Je voudrai savoir si ma facon d'écrire une fonction est bonne.std::vector& fusion(std::vector& Tab1,std::vector& Tab2){   ........return Tfin; Supprimer, Copier [ par neo888 ] Lut,J'utilise c++builder 6 et je voudrais par l'intermediaire d'un button, supprimer tout le contenue d'une disquette et y copier apres des répertoire Supprimer des balises HTML [ par TheChikenKiller ] Bonjour, j'ai a realiser pour un programme une fonction qui permet de supprimer des balises html ... Je m'explique : On a par exemple "information" et [Qt] supprimer tous les QSvgWidget d'un vector [ par Slyken ] Bonjour, je suis en train de programmer un tetris en utilisant Qt, mais je bloque actuellement sur un petit problème. J'ai une fonction updateGraphics Problème suppression fichier [ par GIGN90 ] Bonjour à tous, je suis entrain de développer une application et j'utilise gtkmm pour l'interface graphique.Le souci c'est qu'à un moment je dois supp Supprimer les cookies de Urldownloadtofile [ par PriMe2302 ] Bonjour, Dans mon programme, j'utilise la fonction Urldownloadtofile. Je supprime le cache des fichiers téléchargés avec la fonction DeleteUrlCacheEn pb avec _fmemcpy [ par Drahl ] Bonjout tous le monde !! j'utilise un microcontroleur fujitsu que je programme en C, et je souhaite copier une sous-programme qui ce trouve initialeme décomposition d'un nombre en un tableau de caractères en C [ par mcfly66 ] SalutJe souhaiterais réaliser un programme qui me transformerait un nombre en un tableau dans lequel chacune des cases seraient les décimales de ce no


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,593 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales