Comment copier une map dans une autre?
Salut à tous,
Je cherche simplement à recopier une std::map<std::string,std::string> dans une autre.
J'ai tenté cette approche:
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
| std::map<std::string,std::string> map_source;
std::map<std::string,std::string> map_destination;
/*remplissage de la source */
std::map<std::string,std::string>::const_iterator it = map_source.begin();
while(it!=map_source.end())
{
///////////////////////////////////////////////
///////// la ligne qui ne compile pas
map_destination[it->first] = it->second;
// OU ENCORE
map_destion.insert(std::pair<it->first,it->second>);
// OU ENCORE
std::string cle = it->first;
std::string valeur = it->second;
//puis
map_destination[cle] = valeur;
//ou
map_destion.insert(std::pair<cle,valeur>);
///////////////////////////////////////////////
it++;
} |
et j'obtiens systématiquement du compilateur, le message suivant:
Citation:
passing «const std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >» as «this» argument of «void std::map<_Key, _Tp, _Compare, _Alloc>::insert(_InputIterator, _InputIterator) [with _InputIterator = std::basic_string<char, std::char_traits<char>, std::allocator<char> >, _Key = std::basic_string<char, std::char_traits<char>, std::allocator<char> >, _Tp = std::basic_string<char, std::char_traits<char>, std::allocator<char> >, _Compare = std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, _Alloc = std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >]» discards qualifiers|
Je ne sais pas si ça parle à quelqu'un mais pour récapituler, j'aimerai bien savoir ce que je fais de mal et aussi le moyen le plus efficace de faire une copie d'une map dans une autre map.
Merci à tous
:D