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 Fichier.h : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
 
 
void Inserer(int pos,double val,std::vector<double> &tab);
Code Fichier Def.cpp : S�lectionner tout - Visualiser dans une fen�tre � part
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;
		}
}

Code Main.cpp : S�lectionner tout - Visualiser dans une fen�tre � part
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];
 
}
merci d'avance � tous ceux qui accepteront de m'aider!!!!