Bonjour,
Je viens de finir de taper sous Visual Studio 2005 l'exercice de programmation effectu� en cours.
Le but de l'exercice �tait d'utiliser la classe mod�le vector. Il faut cr�er un tableau de r�els ainsi qu'une fonction Ins�rer qui permet d'ajouter un �l�ment donn� en param�tre de la fonction un nouvel �l�ment donn� lui aussi en param�tre
Mais j'ai plusieurs soucis :
- il faut que je rajoute std:: devant la classe vector de mon fichier .h sinon il met erreur de syntaxe C2061, je ne comprends pas pourquoi puisque j'ai bien ajout� la librairie #include<vector>
- lors de l'execution du programme, apr�s avoir saisi la valeur de l'�l�ment � ajouter, j'ai un message Microsoft Visual C++ Debug Library : Debug Assertion failed
Expression : Vector subscript out of range
Voici mon code :
Code:
1
2
3 void Inserer(int pos,double val,std::vector<double> &tab);
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 #include <vector> #include <iostream> #include "Proto.h" using namespace std; void Inserer(int pos,double val,vector<double> &tab) { if((pos>=0)&&(pos<tab.size())) { tab.resize(tab.size()+1); for(int i=tab.size()-1;i>pos;i++) { tab[i]=tab[i-1]; } tab[pos]=val; } }
merci d'avance � tous ceux qui accepteront de m'aider!!!!Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 #include <vector> #include <iostream> #include "Proto.h" using namespace std; void main() { //déclaration du tableau de réels : vector<double> tab; //Variable pour l'initialisation du tableau: double val; //Variable pour la position de l'élément à ajouter : int position; //Variable pour l'élément à ajouter : double element; //Initialisation du tableau : do { cout<<"Entrer une valeur reelle ou -1 pour terminer"; cin>>val; tab.push_back(val); } while(val>0); tab.pop_back(); //Saisie de la position par l'utilisateur : do { cout<<"Saisir la position de l element a ajouter"; cin>>position; } while(position<0 || position>tab.size()); //Saisie de la nouelle valeur à insérer par l'utilisateur : cout<<"Saisir la valeur de l element a ajouter"; cin>>element; //Appel de la fonction : Inserer(position,element,tab); //Affichage du nouveau tableau : for(int i=0;i<tab.size();i++) cout<<tab[i]; }