freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

面向?qū)ο蟪绦蛟O(shè)計(jì)c語言四ppt-資料下載頁

2025-01-20 12:55本頁面
  

【正文】 個(gè)元素 。 ? 所以任何算法的語法都必須滿足最低層次迭代器的要求 , 參看如下的 copy( )函數(shù)模板的原型: template typename InputIterator, typename OutputIterator OutputIterator copy(InputIterator beg, InputIterator end, OutputIterator output)。 103 在以上的函數(shù)原型中隱含著如下的信息: ( 1) 其中定義 InputIterator抽象類型代表輸入型迭代器 , OutputIterator代表輸出型迭代器 , 滿足了最低層次的迭代器的要求 。 ( 2 ) 操 作 對(duì) 象 定 義 在 一 個(gè) 序 列 區(qū) 間 內(nèi) , 由InputIterator定義的 beg和 end就代表了這樣的操作區(qū)間 [beg,end)。 可以采用如下方法來適用以上的 copy函數(shù): 104 【例 】 copy函數(shù)的使用。 /* */ include iostream include vector using namespace std。 int main() { int a[5]={1,3,5,7,9}。 vectorint v1(a, a+5)。 //整型數(shù)向量 ,利用數(shù)組初始化 ostream_iteratorint output(cout, )。//定義輸出流迭代器 copy((),(),output)。//把 v1內(nèi)容復(fù)制給輸出流迭代器 return 0。 } 105 1 3 5 7 9 程序的運(yùn)行結(jié)果為: 106 ? 在 STL的算法中,有些算法函數(shù)可以使用默認(rèn)的規(guī)則。 ? 而對(duì)于某些特殊的要求,則需要給算法函數(shù)一個(gè)特殊的規(guī)則,而這種特殊的規(guī)則就需要用函數(shù)對(duì)象來實(shí)現(xiàn)(函數(shù)對(duì)象在后面的章節(jié)里會(huì)介紹),通過實(shí)例看一下 sort函數(shù)的兩種使用形式。 107 【例 】用 sort算法函數(shù)的進(jìn)行排序。 /* */ include algorithm include iostream include vector include functional using namespace std。 int main() { int ary[7]={1,7,3,4,6,5,9}。 vectorint v1(ary, ary+7)。 //整型數(shù)向量 ostream_iteratorint output(cout, )。//輸出流迭代器 coutOriginal data: 。 copy((),(),output)。 coutendlSort ascending: 。 sort((),())。 //用默認(rèn)規(guī)則排序(升序) copy((),(),output)。 coutendlSort descending: 。 sort((),(),greaterint())。//給定降序規(guī)則 copy((),(),output)。 coutendl。 return 0。 } 108 Original data: 1 7 3 4 6 5 9 Sort ascending: 1 3 4 5 6 7 9 Sort descending: 9 7 6 5 4 3 1 程序的運(yùn)行結(jié)果為: 109 常用算法舉例 1. 不變序列算法 典型的不變序列算法如表 。 表 典型的不變序列算法 算法 說明 for_each 對(duì)序列中每一個(gè)元素執(zhí)行某種操作 ( 操作以函數(shù)對(duì)象在參數(shù)中給出 ) find 在序列中查找給定值出現(xiàn)的位置 find_if 在序列中按某種條件查找給定值出現(xiàn)的位置 count 對(duì)序列中等于給定值的元素計(jì)數(shù) max_element 求出序列中的最大值的位置 min_element 求出序列中的最小值的位置 110 【例 】常用不變序列算法函數(shù)應(yīng)用。 /* */ include algorithm include iostream include vector include functional using namespace std。 int main() { int ary[]={12,34,23,87,10,44,67}。 int num=sizeof(ary1)/sizeof(int)。 vectorint v1(ary1,ary1+num)。 vectorint::iterator it。 int key=44。 //調(diào)用 count算法函數(shù),計(jì)算向量 v1中與 key相等元素的個(gè)數(shù) size_t t=count((),(),key)。 111 coutkey presents (int)t timesendl。 //調(diào)用 find算法函數(shù),返回向量 v1中首個(gè)與 key相同元素出現(xiàn)的位置 it=find((),(),key)。 if(it==()) //是否等于末端,是就沒找到 coutnot found.endl。 else coutfound it keyendl。} //調(diào)用 element算法函數(shù),返回向量 v1中的最大值的位置 it=max_element((),())。 coutthe max is *it。 return 0。 } 112 44 presents 1 times found it 44 the max is 87 程序的運(yùn)行結(jié)果為: 113 2. 可變序列算法 ? 可變序列算法可以修改容器內(nèi)的元素 , 此類算法包括的典型算法如表 。 表 算法 說明 copy 復(fù)制序列區(qū)間內(nèi)的所有元素到指定目標(biāo)處 fill 用某一數(shù)值填充序列區(qū)間內(nèi)所有元素 unique 查找并刪除序列區(qū)間連續(xù)相等的元素 remove 刪除序列區(qū)間內(nèi)所有等于給定值的元素 replace 替換某類元素 reverse 反轉(zhuǎn)序列區(qū)間所有元素的順序 swap 交換元素 114 【 例 】常用可變序列算法函數(shù)應(yīng)用。 /* */ include algorithm include iostream include vector include functional using namespace std。 int main() { const int N=7。 int ary1[N]={1,6,3,4,6,5,9}。 vectorint v1(ary1, ary1+N)。 //整型向量 vectorint v2(N)。 //整型向量,初始化大小為 N vectorint::iterator it。 //整型向量迭代器 ostream_iteratorint output(cout, )。//輸出流迭代器 fill((),(),10)。 //填充算法,使 v2中所有元素等于 10 115 coutoriginal v1: 。 copy((),(),output)。//輸出 v1所有元素值 coutendloriginal v2: 。 copy((),(),output)。//輸出 v2所有元素值 coutendl。 coutv1 after reverse(): 。 reverse((),())。//反轉(zhuǎn) v1區(qū)間內(nèi)所有元素順序 copy((),(),output)。//輸出 coutendl。 116 coutv1 after remove(): 。 it=remove((),(),6)。 //刪除 v1的元素 3 (it,())。 copy((),(),output)。 //輸出 v1 coutendl。 swap(v1,v2)。 //交換 v1,v2兩個(gè)容器的內(nèi)容 coutv1 after swap(): 。 copy((),(),output)。 //輸出 v1所有元素值 coutendlv2 after swap(): 。 copy((),(),output)。 //輸出 v2所有元素值 coutendl。 return 0。 } 117 original v1: 1 6 3 4 6 5 9 original v2: 10 10 10 10 10 10 10 v1 after reverse(): 9 5 6 4 3 6 1 v1 after remove(): 9 5 4 3 1 v1 after swap(): 10 10 10 10 10 10 10 v2 after swap(): 9 5 4 3 1 程序的運(yùn)行結(jié)果為: 118 ? 此類算法實(shí)現(xiàn)序列的排序 、 合并 、 查找等功能 , 中列出了部分典型算法 。 表 算法 說明 sort 對(duì)給定區(qū)間的序列排序 stable_sort 對(duì)給定區(qū)間的序列排序并保持等值元素的相對(duì)位置 partial_sort 對(duì)給定區(qū)間的序列進(jìn)行局部排序 nth_element 對(duì)給定區(qū)間的序列排序 , 使第 n個(gè)元素前的元素小于它 , 之后的元素大于等于它 merge 合并兩個(gè)區(qū)間 binary_search 按二分法查找元素 119 【例 】常用排序算法函數(shù)應(yīng)用。 /* */ include algorithm include iostream include vector include functional using namespace std。 int main() { int ary1[]={1,6,3,4,8,30,5,22,17}。 //第 1組數(shù)據(jù) int ary2[]={89,12,44,7,19,22}。 //第 2組數(shù)據(jù) int num1=sizeof(ary1)/sizeof(int)。 //元素?cái)?shù)目 int num2=sizeof(ary2)/sizeof(int)。 //元素?cái)?shù)目 ostream_iteratorint output(cout, )。//輸出流迭代器 vectorint v1(ary1,ary1+num1)。 //用第 1組數(shù)初始化向量 v1 vectorint v2(ary2,ary2+num2)。 //用第 2組數(shù)初始化向量 v1 vectorint v3(num1+num2)。 //初始化 v3, 設(shè)定大小 copy((),(),output)。 //輸出 v1各元素值 coutendl。 120 sort((),())。 //對(duì) v2中元素按升序排列 copy((),(),output)。 //輸出 coutendl。 //以 ()+4處的元素為分界,對(duì)前面的元素排序 partial_sort((),()+3,())。 copy((),(),output)。 //輸出 coutendl。 //合并 v1,v2元素到 v3中,且進(jìn)行排序 merge((),(),(),(),in())。 copy((),(),output)。 //輸出 coutendl。 return 0。 } 121 1 6 3 4 8 30 5 22 17 7 12 19 22 44 89 1 3 4 6 8 30 5 22 17 1 3 4 6 7 8 12 19 22 30 5 22 17 44 89 程序的運(yùn)行結(jié)果為: 122 ? 此類算法實(shí)現(xiàn)序列的排序 、 合并 、 查找等功能 , 表 表 算法 說明 accumulate 計(jì)算序列中所有元素的累加和 partical_sum 用序列中元素從前到后的迭代和產(chǎn)生一個(gè)新的序列 adjacent_diffence 計(jì)算序列中相鄰元素的差 , 保存到另一個(gè)序列中 inner_product 計(jì)算內(nèi)積 , 即兩個(gè)序列對(duì)應(yīng)位置的元素相
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1