這兩個函式類似,以upper_bound為例,該函式有兩種形式:
templateforwarditerator upper_bound (forwarditerator first, forwarditerator last, const t& val)
template函式接受兩個迭代器 first, last,乙個值 val。函式所做的工作如下:以 val 作為上界,在first, last 中尋找乙個區間,這個區間的上界就是 val, 顯然,這樣的區間有很多個,我們要選乙個最貼近上界的區間。返回的迭代器就指向這個區間的右邊的第乙個值。forwarditerator upper_bound (forwarditerator first, forwarditerator last,
const t& val, compare comp);
所謂的大於,小於可以自己定義。lower_bound() 返回以 val 為下界的區間的左端點的迭代器。
int main() ;
vectorv(input, input+12);
vector::iterator it1 , it2;
// points to eight element in v, index from 0 to 11, *it1 = 7
it1 = upper_bound(v.begin(), v.end(), 6);
cout << it1 - v.begin() << endl;
// points to six element in v, *it2 = 5
it2 = upper_bound(v.begin(), v.end(), 4);
cout << it2 - v.begin() << endl;
return 0;
}
int main() ;
vectorv(input, input+12);
vector::iterator it1 , it2;
// points to eight element in v, *it1 = 4
it1 = lower_bound(v.begin(), v.end(), 4);
cout << *it1 << endl;
cout << it1 - v.begin() << endl;
// points to six element in v, *it2 = 10
it2 = lower_bound(v.begin(), v.end(), 10);
cout << *it2 << endl;
cout << it2 - v.begin() << endl;
return 0;
}
不定期更新部落格
也算是乙個真正程式設計生涯的起點,聽說大神都有自己的部落格。csdn部落格主要是作為乙個詳細的記錄場所,類似log的verbose檔,細緻入微,無孔不入,因此可能更新頻率較高,質量也相對較低。我的意思是將csdn這裡的部落格作為日後更加精煉的部落格 比如個人blog站或者github pages 的...
C STL 不定期更新
一 set set的特性是,所有元素都會根據元素的鍵值自動排序,set的元素不像map那樣可以同時擁有實值 value 和鍵值 key set元素的鍵值就是實值,實值就是鍵值。set不允許兩個元素有相同的鍵值。include初始化 int arr 5 set iset arr,arr 5 或者只定義...
STL函式中的小細節(不定期更新)
隨便記記了。不定期更新 reverse函式反轉的範圍是 first,last 所以包括first指向的元素,不包括last指向的元素。而a.end a為string 指向a最後乙個字元的後一位。全排列 next permutation 函式功能是輸出所有比當前排列大的排列,順序是從小到大。而prev...