Changeset 485
- Timestamp:
- Oct 13, 2007, 10:13:54 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/lib/Functor.h
r465 r485 167 167 const std::vector<T>& v) const 168 168 { 169 std::vector<T> res; 170 res.reserve(std::max(u.size(), v.size())); 171 std::back_insert_iterator<std::vector<T> > inserter(res); 169 172 if ( u.size() > v.size() ){ 170 std::vector<T> res(u.size()); 171 transform(u.begin(), u.end(), v.begin(), res.begin(), std::plus<T>()); 172 copy(u.begin()+v.size(), u.end(), res.begin()+v.size()); 173 return res; 173 std::transform(v.begin(), v.end(), u.begin(), inserter, std::plus<T>()); 174 std::copy(u.begin()+v.size(), u.end(), inserter); 174 175 } 175 176 std::vector<T> res(v.size()); 177 transform(v.begin(), v.end(), u.begin(), res.begin(), std::plus<T>()); 178 if ( v.size() > u.size() ) 179 copy(v.begin()+u.size(), v.end(), res.begin()+u.size()); 176 else { 177 std::transform(u.begin(), u.end(), v.begin(), inserter, std::plus<T>()); 178 std::copy(v.begin()+u.size(), v.end(), inserter); 179 } 180 180 return res; 181 181 }
Note: See TracChangeset
for help on using the changeset viewer.