template<class T, class Tab> int search_in_ordered_vect(T x, const Tab & v) { if (!v.size_array()) return -1; int i1=0; int i; int i2 = (int)v.size_array()-1; while (i1 != i2) { i = (i1+i2)/2; if (v[i] < x) i1=i+1; else i2=i; } if (v[i1] == x) return i1; return -1; }
static void retirer_doublons(Tab & tab, const T epsilon) { int i = 0; int j; const int n = tab.size_array(); T last_tab_i = -1e40; for (j = 0; j < n; j++) { const T x = tab[j]; assert(x >= last_tab_i); // Array must be sorted if (x - last_tab_i > epsilon) { tab[i] = x; last_tab_i = x; i++; } } tab.resize_array(i); }