STL裡面的函式(不定期更新)

2021-08-27 08:08:24 字數 1439 閱讀 4801

這兩個函式類似,以upper_bound為例,該函式有兩種形式:

template

forwarditerator upper_bound (forwarditerator first, forwarditerator last, const t& val)

template

forwarditerator upper_bound (forwarditerator first, forwarditerator last,

const t& val, compare comp);

函式接受兩個迭代器 first, last,乙個值 val。函式所做的工作如下:以 val 作為上界,在first, last 中尋找乙個區間,這個區間的上界就是 val, 顯然,這樣的區間有很多個,我們要選乙個最貼近上界的區間。返回的迭代器就指向這個區間的右邊的第乙個值。

所謂的大於,小於可以自己定義。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...