青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Life is Good.

Enhance Tech and English
隨筆 - 65, 文章 - 20, 評(píng)論 - 21, 引用 - 0
數(shù)據(jù)加載中……

STL 堆棧操作技術(shù)

STL 中與heap 有關(guān)的操作有 如下幾個(gè) :

         

make_heap(),   pop_heap(),  push_heap(),  sort_heap(),  is_heap(); 

 

is_heap() :

 

原型如下 :

1. bool is_heap(iterator start, iterator end); 

->判斷迭代器[start, end] 區(qū)間類的元素是否構(gòu)成一個(gè)堆.  是返回true ,否則返回 false.

2. bool is_heap(iterator start, iterator end, StrictWeakOrdering cmp); 

->判斷迭代器[start, end] 區(qū)間類的元素在cmp條件下是否構(gòu)成一個(gè)堆. 是返回true ,否則返回 false.

         

make_heap() :

 原型如下 :

1. void make_heap( random_access_iterator start, random_access_iterator end );         

2. void make_heap( random_access_iterator start, random_access_iterator end, StrictWeakOrdering cmp ); 

 -> 迭代器[start , end] 區(qū)間內(nèi)的元素生成一個(gè)堆. 默認(rèn)使用 元素類型  操作符 進(jìn)行判斷堆的類型, 因此生成的是大頂堆 .

 ->當(dāng)使用了 版本2時(shí), 系統(tǒng)使用 用戶定義的 cmp 函數(shù)來構(gòu)建一個(gè)堆 

 ->值得注意的是,  make_heap 改變了 迭代器所指向的 容器 的值.

 pop_heap() :

原型如下 :

1.  void pop_heap( random_access_iterator start, random_access_iterator end );

2.  void pop_heap( random_access_iterator start, random_access_iterator end, StrictWeakOrdering cmp );

->pop_heap() 并不是真的把最大(最小)的元素從堆中彈出來而是重新排序堆. 它把首元素末元素交換,然后將[first,last-1)的數(shù)據(jù)再做成一個(gè)堆。 

此時(shí), 原來的 首元素 位于迭代器 end-1 的位置,  它已不再屬于堆的一員!  

->如果使用了 版本2 , 在交換了 首元素末元素 ,使用 cmp 規(guī)則 重新構(gòu)建一個(gè)堆.

 push_heap() :

 原型如下 :

1.   void push_heap( random_access_iterator start, random_access_iterator end );

2.   void push_heap( random_access_iterator start, random_access_iterator end, StrictWeakOrdering cmp ); 

 -> 算法假設(shè)迭代器區(qū)間[start, end-1)內(nèi)的元素已經(jīng)是一個(gè)有效堆, 然后把 end-1 迭代器所指元素加入堆. 

 -> 如果使用了 cmp 參數(shù), 將使用 cmp 規(guī)則構(gòu)建堆.        

sort_heap() : 

原型如下 :

 1. void sort_heap (random_access_iterator start, random_access_iterator end);

 2. void sort_heap (random_access_iterator start, random_access_iterator end, StrictWeakOrdering cmp); 

-> 堆結(jié)構(gòu)被完全破壞, 相當(dāng)于對(duì)元素進(jìn)行排序, 效果和排序算法類似.  

-> 如果使用了 cmp 參數(shù), 將使用 cmp 規(guī)則排序堆.

 示例代碼:

#include "stdafx.h"
#include 
<iostream>
#include 
<algorithm>
#include 
<vector>
#include 
<functional> // for greater<>, less<>
using namespace std;


int _tmain(int argc, _TCHAR* argv[])
{
  
// v.begin and v.end can by replaced by &number[0],  &number[9]
  int number[10= {2,1,10,8,90,30,9,98,6,7};
  vector
<int> v(number,number+10);

  
//make_heap (v.begin(),v.end()); // the first one is the largest one, others not sure.
  
//cout << "Initial Max heap: " <<v.front()<< endl;

  
//make_heap (v.begin(),v.end(),less<int>()); // the first one is the largest one, others not sure.
  
//cout << "Initial Max heap : " <<v.front()<< endl;

  make_heap (v.begin(),v.end(),greater
<int>()); // the first one is the smallest one, others not sure.
  cout << "Initial Min heap: " <<v.front()<< endl;

  
//不是真的把最大(最小)的元素從堆中彈出來。而是重新排序堆。它
  
// 把first和last交換,然后將[first,last-1)的數(shù)據(jù)再做成一個(gè)堆。
  
//pop_heap (v.begin(),v.end());
  
//pop_heap (v.begin(),v.end(),less<int>());
  pop_heap (v.begin(),v.end(),greater<int>());

  v.pop_back(); 
// Pop up the last one

  
//cout << "Max heap after pop : " << v.front() << endl;
  cout << "Min heap after pop : " << v.front() << endl;

  v.push_back(
80); // Put to the last one

  
//push_heap (v.begin(),v.end()); // Keep the first one is the largest one
  
//push_heap (v.begin(),v.end(), less<int>()); // Keep the first one is the largest one
  push_heap (v.begin(),v.end(),greater<int>()); // Keep the first one is the smallest one

  
//cout << "max heap after push: " << v.front() << endl;
  cout << "Min heap after push: " << v.front() << endl;

  
//sort_heap (v.begin(),v.end()); // sort by descent
  
//sort_heap (v.begin(),v.end(), less<int>()); // sort by descent
  sort_heap (v.begin(),v.end(),greater<int>()); // sort by ascent

  cout 
<< "final sorted range :";
  
for (unsigned i=0; i<v.size(); i++) cout << " " << v[i];

  cout 
<< endl;

  
return 0;
}

posted on 2011-03-08 22:04 Mike Song 閱讀(1018) 評(píng)論(0)  編輯 收藏 引用


只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美激情第一页xxx| 久久久久一区二区三区| 国语自产在线不卡| 国产一区二区三区丝袜| 国产精品欧美精品| 国产区亚洲区欧美区| 国产在线麻豆精品观看| 又紧又大又爽精品一区二区| 亚洲国产免费| 亚洲视频中文| 欧美与欧洲交xxxx免费观看| 狂野欧美激情性xxxx| 欧美高清在线视频| 夜夜爽av福利精品导航| 亚洲欧美日韩精品一区二区| 久久九九99视频| 欧美激情aaaa| 国产日韩在线视频| 亚洲精品一级| 久久精品国产精品 | 亚洲夜晚福利在线观看| 亚洲欧美成人网| 久久久久**毛片大全| 欧美日韩视频在线第一区| 国产精品影院在线观看| 亚洲高清在线| 欧美一区二区精品| 亚洲精品黄色| 在线一区观看| 免费中文字幕日韩欧美| 国产精品一区二区三区久久久 | 欧美在线一级视频| 欧美日本精品在线| 国外成人在线| 亚洲女ⅴideoshd黑人| 欧美电影在线观看完整版| 亚洲一区精品视频| 欧美久久久久| 亚洲第一主播视频| 久久精品一区二区三区中文字幕| 亚洲日本欧美| 六月丁香综合| 国产在线成人| 欧美一区二区在线| 亚洲图片欧洲图片日韩av| 欧美黄色大片网站| 亚洲国产日韩一区| 裸体歌舞表演一区二区| 香蕉乱码成人久久天堂爱免费| 欧美日韩国产精品成人| 亚洲激情视频在线| 欧美.www| 久久久爽爽爽美女图片| 国产视频自拍一区| 久久国产视频网站| 亚洲欧美中日韩| 国产精品亚洲片夜色在线| 亚洲视频1区| 亚洲毛片在线| 欧美特黄a级高清免费大片a级| 亚洲美女网站| 99国产精品国产精品久久| 欧美日韩精品是欧美日韩精品| 亚洲每日在线| 亚洲狠狠婷婷| 欧美伦理一区二区| 99re视频这里只有精品| 麻豆精品网站| 久久综合中文字幕| 久久精品视频网| 国产一区二区日韩| 国产精品私房写真福利视频| 亚洲夜晚福利在线观看| 中日韩视频在线观看| 国产精品久久国产三级国电话系列| 亚洲一级黄色片| 亚洲欧美乱综合| 亚洲女同在线| 亚洲性视频网站| 国产欧美日韩在线| 久久久久免费视频| 久久一区二区三区av| 亚洲第一色在线| 亚洲美女尤物影院| 国产精品裸体一区二区三区| 久久精品国产第一区二区三区最新章节 | 一区二区三区成人精品| 另类欧美日韩国产在线| 亚洲美女91| 亚洲欧美日韩精品久久| 亚洲国产裸拍裸体视频在线观看乱了| 欧美国产一区二区| 国产精品www994| 蜜臀av一级做a爰片久久| 欧美区一区二| 久久激情视频| 欧美www视频| 午夜精品网站| 欧美成人蜜桃| 久久精品国产2020观看福利| 裸体素人女欧美日韩| 性刺激综合网| 欧美激情一区三区| 久久一区二区三区国产精品 | 欧美日韩亚洲视频一区| 久久久精品tv| 欧美日韩午夜精品| 免费视频一区二区三区在线观看| 欧美日韩精品欧美日韩精品一 | 欧美亚洲视频在线观看| 欧美14一18处毛片| 久久国产精品久久久| 欧美人交a欧美精品| 久热精品视频在线观看一区| 欧美三级网页| 亚洲精品1区| 亚洲国产91精品在线观看| 亚洲一二三区视频在线观看| 亚洲精选一区| 久久综合国产精品| 久久久国产精品亚洲一区 | 国产精品尤物| 一区二区三区精品国产| 亚洲精品一区二区三区婷婷月| 久久大逼视频| 久久九九久久九九| 国产日韩精品电影| 亚洲免费中文字幕| 亚洲欧美日韩久久精品 | 亚洲激情一区二区| 玖玖玖国产精品| 欧美刺激性大交免费视频| 久久精品视频免费播放| 亚洲国产精品小视频| 午夜激情久久久| 亚洲男人的天堂在线| 国产精品久久久久国产精品日日| 亚洲精品中文字幕女同| 亚洲精品一区二区三区四区高清 | 国产人久久人人人人爽| 中文精品视频| 亚洲欧美另类在线观看| 国产精品看片资源| 亚洲自拍电影| 欧美在线亚洲在线| 好吊一区二区三区| 久热综合在线亚洲精品| 亚洲国产一区二区三区青草影视| 亚洲精品午夜精品| 欧美午夜精品理论片a级大开眼界 欧美午夜精品理论片a级按摩 | 午夜精品福利视频| 欧美日韩在线三级| 亚洲一区二区高清视频| 久久国产手机看片| 亚洲国产日韩欧美| 欧美视频在线看| 亚洲综合色婷婷| 另类图片国产| 艳女tv在线观看国产一区| 国产精品theporn| 欧美一区二区国产| 亚洲第一网站免费视频| 亚洲香蕉伊综合在人在线视看| 欧美日韩免费一区| 午夜精品福利一区二区三区av| 久久亚洲色图| 一区二区三区av| 国产午夜精品一区理论片飘花 | 香蕉视频成人在线观看| 激情综合自拍| 欧美色偷偷大香| 久久精品一区| 一区二区三区精品| 欧美国产精品va在线观看| 亚洲综合欧美日韩| 亚洲高清在线观看一区| 国产精品青草久久| 男女av一区三区二区色多| 亚洲午夜影视影院在线观看| 欧美va亚洲va日韩∨a综合色| 亚洲欧美日本国产有色| 亚洲高清三级视频| 国产欧美一区二区三区视频| 欧美α欧美αv大片| 欧美一二三区在线观看| 亚洲精品欧美一区二区三区| 久久久青草青青国产亚洲免观| 亚洲网站啪啪| 亚洲欧洲日韩女同| 国产一区二区精品久久| 欧美天堂亚洲电影院在线观看| 久久午夜电影| 欧美一区二区性| 国产欧美日韩精品a在线观看| 牛牛国产精品| 久久综合给合久久狠狠狠97色69| 亚洲欧美在线另类| 亚洲一级高清| 夜夜爽av福利精品导航 | 国产精品视频男人的天堂|