converting value before inserting into a list

I want to convert values according to a map before inserting it into the
list. What is a proper way to do that?
I have this:
map

Alexander Shyrokov wrote:
I want to convert values according to a map before inserting it into the list. What is a proper way to do that? I have this:
map
m; vector<int> a,b; for(vector<int>const_iterator i=a.begin();i!=a.end();++i) b.push_back(m[*i]);
I could use std::copy with std::back_inserter to add elements to b, but how do I convert it first? Should I write my own version of back_inserter for that?
copy(a.begin(),a.end(),my_back_inserter(b,m));
One option is to use
std::transform( a.begin(), a.end(), std::back_inserter( b ), F );
where F(x) returns m[x].
boost::bind( &std::map

On 9/19/06, Alexander Shyrokov
I want to convert values according to a map before inserting it into the list. What is a proper way to do that? I have this:
map
m; vector<int> a,b; for(vector<int>const_iterator i=a.begin();i!=a.end();++i) b.push_back(m[*i]);
I could use std::copy with std::back_inserter to add elements to b, but how do I convert it first? Should I write my own version of back_inserter for that?
copy(a.begin(),a.end(),my_back_inserter(b,m));
Thanks. -- Regards, Alexander. http://sjcomp.com
I would probably write for(vector<int>const_iterator i=a.begin();i!=a.end();++i) b.push_back(m[*i]); (yes, I understand that's your original.) Tony
participants (3)
-
Alexander Shyrokov
-
Gottlob Frege
-
Peter Dimov