STL演算法學習2

2021-06-22 13:59:10 字數 2958 閱讀 3683

二、變異演算法

是一組能夠修改容器元素資料的模板函式。copy(v.begin(),v.end(),l.begin());將v中的元素複製到l中。

1元素複製copy

#include

#include

#include

#include

using namespace std;

void main()

2元素變換transform改變

函式原型:transform(v.begin(),v.end(),l.begin(),square);也是複製,但是要按某種方案複製。

#include

#include

#include

#include

using namespace std;

int square(int x)

void main()

3替換replace

replace演算法將指定元素值替換為新值。

#include

#include

#include

using namespace std;

void main()

輸出結果為13 100 27 100 29

4條件替換replace_if

函式原型:replace_if(v.begin(),v.end(),odd,100);

#include

#include

#include

using namespace std;

bool odd(int x)

void main()

5n次填充fill_n

函式原型fill_n(v.begin(),5,-1);向從v.begin開始的後面5個位置跳入-1

#include

#include

#include

using namespace std;

void main()

輸出結果:-1 -1 -1 -1 -1 0 0 0 0 0

6隨機生成n個元素generate

函式原型:generate_n(v.begin(),5,rand);向從v.begin開始的後面5個位置隨機填寫資料。

#include

#include

#include

using namespace std;

void main()

7條件移除remove_if

返回值相當於移除滿足條件的元素後形成的新向量的end()值。

函式原型:remove_if(v.begin(),v.end(),even);

#include

#include

#include

using namespace std;

bool even(int x)

void main()

8剔除連續重複元素unique

函式原型:unique(v.begin(),v.end());

#include

#include

#include

using namespace std;

void main()

輸出結果:2 6 9 6 3

演算法學習 2

題目要求 乙個數如果恰好等於它的因子之和 包括1,但不包括這個數本身 這個數就稱為 完數 例如28的因子為1,2,4,7,14,而28 1 2 4 7 14.因此28是 wan shu 完數.編寫演算法找出1000之內的所有完數,並按下面格式輸出其因子 28 it s factors are 1,2...

演算法學習 2

當我們在沒有學習演算法之前,在做排序問題的時候,首先想到的應該是選擇排序或者是氣泡排序。其中選擇排序可能是大腦最自然的思考方式。很小的時候上體育課,在操場上,同學們零零散散站著,老師掃了一眼,叫了最高個同學站在到前面,然後再在剩餘同學中選擇最高的依次站成一排,重複此過程直到最後乙個同學也站入隊伍了後...

SIFT演算法學習(2)

3.sift sift全稱為 scale invariant feature transform 即尺度不變特徵變換。sift演算法提取的 sift 特徵具有如下特性 sift特徵是影象的區域性特徵,其對旋轉 尺度縮放 亮度變化保持不變性,對視角變化 放射變換 雜訊也保持一定程度的穩定性。獨特性好,...