bool container_equal(const Container1& con1, const Container2& con2){ auto first1 = con1.cbegin(), last1 = con1.cend(); auto first2 = con2.cbegin(), last2 = con2.cend(); for (; first1 != last1 && first2 != last2; ++first1, ++first2){ if (*first1 != *first2) return false; } return (first1 == last1 && first2 == last2); }
bool isEqual( Container1 & c1, Container2 & c2 ) { if ( c1.size() == c2.size() ) { for ( unsigned int i = 0; i < c1.size(); ++i ) { if ( c1.test( i ) != c2.test( i ) ) return false; } return true; } return false; }
std::vector<double> midpt(const Container1<T>& k, class Container2<coord_type>::iterator coord_iter1, double h) { std::vector<double> midpoints( k.size() ); std::transform(k.cbegin(), k.cend(), coord_iter1, midpoints.begin(), [&](const T& ki, const coord_type& xi) { return 0.5*h*ki + xi; } ); return midpoints; }
void Sort(Container1& data1, Container2& data2, bool useLessFunctor = true) { typedef typename Container1::value_type T1; typedef typename Container2::value_type T2; assert(data1.size() == data2.size()); size_t size = data1.size(); vector<std::pair<T1,T2> > data; data.reserve(size); for (size_t i = 0; i < size; ++i) { data.push_back(std::make_pair(data1[i], data2[i])); } Sort(data, useLessFunctor); for (size_t i = 0; i < size; ++i) { data1[i] = data[i].first; data2[i] = data[i].second; } }
bool isEqual( Container1 & c1, Container2 & c2 ) { return ( c1.size() == c2.size() ) && std::equal( c1.begin(), c1.end(), c2.begin() ); }