C STL演算法 copy的使用

2021-09-25 08:23:08 字數 1998 閱讀 8345

binary_search()在c++中找到的用法有兩種:

第一種是拷貝容器

a.原型如下:

template<

class

_init

,class

_outit

> inline

_outit copy

(_init _first, _init _last,

_outit _dest)

b. 函式原型:

copy(vector1.begin(), vector1.end(), back_inserter(vector2))

c. 引數說明:

第二種拷貝在迭代器指定位置:

a.原型如下:

#if _iterator_debug_array_overloads

template<

class

_init

,class

_outty

, size_t _outsize> inline

_outty *

copy

(_init _first, _init _last,

_outty

(&_dest)

[_outsize]

) #endif /* _iterator_debug_array_overloads */

b.函式原型:

copy(vector1.begin(), vector1.end(), vector2[x]);

c.引數說明:

d.函式功能:主要用於拷貝迭代器的位置

例子如下:

#include

#include

#include

//back_inserter所需要的標頭檔案

using namespace std;

void

main()

; vec2.

reserve

(vec1.

size()

);//儲存vec1的大小

copy

(vec1.

begin()

, vec1.

end(),

back_inserter

(vec2));

//進行拷貝

cout <<

"vec1.size() = "

<< vec1.

size()

<< endl;

//輸出vec1的大小

cout <<

"vec1.capacity() = "

<< vec1.

capacity()

<< endl;

//輸出vec1的容量

cout <<

"vec1: "

;for

(vector

::const_iterator iter = vec1.

begin()

; iter < vec1.

end();

++iter)

cout << endl;

cout <<

"vec2.size() = "

<< vec2.

size()

<< endl;

//輸出vec2的大小

cout <<

"vec2.capacity() = "

<< vec2.

capacity()

<< endl;

//輸出vec2的容量

cout <<

"vec2: "

;for

(vector

::const_iterator iter = vec2.

begin()

; iter < vec2.

end();

++iter)

cout << endl;

}

C STL演算法系列6 copy函式

現在我們來看看變易演算法。所謂變易演算法 mutating algorithms 就是一組能夠修改容器元素資料的模板函式,可進行序列資料的複製,變換等。我們現在來看看第乙個變易演算法 元素複製演算法copy。該演算法主要用於容器之間元素的拷貝,即將迭代器區間 first,last 的元素複製到由複製...

C STL演算法系列6 copy函式

現在我們來看看變易演算法。所謂變易演算法 mutating algorithms 就是一組能夠修改容器元素資料的模板函式,可進行序列資料的複製,變換等。我們現在來看看第乙個變易演算法 元素複製演算法copy。該演算法主要用於容器之間元素的拷貝,即將迭代器區間 first,last 的元素複製到由複製...

C STL 演算法另類使用方法

很多時候我們希望在乙個 vector 或者 list 或者什麼其他東西裡面,找到乙個值在哪個位置,這個時候 find 幫不上忙,而有人就轉而求助手寫迴圈了,而且是原始的手寫迴圈 for int i 0 i vect.size i if vect i value break 如果編譯器把 i 看作 f...