Bonjour à tous,

je suis en première année d'informatique et j'ai probléme à un de mes TP. Le programme que je doit faire à pour but de trouver les chiffres dans une chaine de caractére et de les mettre dans un conteneur. Voici le code que je veux compiler :

Code :
#include <set>
#include <iostream>

Code : 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
std::set<int> queLesChiffres(std::string & chaine )
{
std::set<int> ensChiffre;
	unsigned int pos=0;
	for ( pos=0 ; pos != chaine.size() ; pos++ )
	{
		if ( isdigit(chaine.at(pos)))
		{
			ensChiffre.insert(chaine.at(pos));
		}
	}
	return ensChiffre;
}
 
void listerLesChiffres(std::set<int> & ens1)
{
	std::set<int>::const_iterator it;
	for ( it = ens1.begin() ; it != ens1.end() ; it++ )
	{
		std::cout<<(*it)<<std::endl;
	}
	return;
}
 
void test()
{
	std::string chaineProg;
	chaineProg+=("1Prog0ramma34tion3");
	listerLesChiffres(queLesChiffres( chaineProg ));
	return;
}
int main()
{
	test();
	return 0;
}
et j'obtient les erreurs suivantes:

-tp1.cpp: In function ‘void test()’:
-tp1.cpp:32: error: invalid initialization of non-const reference of type ‘std::set<int, std::less<int>, std::allocator<int> >&’ from a temporary of type ‘std::set<int, std::less<int>, std::allocator<int> >’
-tp1.cpp:18: error: in passing argument 1 of ‘void listerLesChiffres(std::set<int, std::less<int>, std::allocator<int> >&)’

Je n'arrive vraiment pas à trouver la cause de ces erreurs ! Alors si quelqu'un peut m'aider je suis preneur !!

Merci d'avance.