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
| #include <iostream>
#include <string>
#include <iterator>
#include <sstream>
#include <algorithm>
#include<utility>
#include <locale>
typedef std::pair<std::string,unsigned> menuDescription;
std::string afficherItemMenu(menuDescription item_)
{
std::stringstream oss;
oss<<") Menu : "<<item_.first<<"\t";
if (item_.first.length()<=4) {oss<<"\t";}
oss<<"Prix : "<<item_.second/100;
if(item_.second%100)
{
const char decimal_point = std::use_facet<std::numpunct<char> >(oss.getloc()).decimal_point ();
oss<<decimal_point<<item_.second%100;
}
oss<<" Euros";
return oss.str();
}
int main()
{
std::vector<menuDescription> const Carte =
{
{"un",111}
,{"deux",222}
,{"trois",333}
,{"quatre",444}
,{"cinq",500}
}; // en C++03, utiliser push_back Carte.push_back(menuDescription("six",600)); au détriment de la constance de Carte
std::transform(std::begin(Carte),std::end(Carte),std::ostream_iterator<std::string>(std::cout,"\n"),afficherItemMenu);
// en C++03, remplacer std::begin(Carte) par Carte.begin() et std::end(Carte) par Carte.end()
return 0;
} |
Partager