Probléme avec les conteneur
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:
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.