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

Life is Good.

Enhance Tech and English
隨筆 - 65, 文章 - 20, 評論 - 21, 引用 - 0
數據加載中……

STL 堆棧操作技術

STL 中與heap 有關的操作有 如下幾個 :

         

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

 

is_heap() :

 

原型如下 :

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

->判斷迭代器[start, end] 區間類的元素是否構成一個堆.  是返回true ,否則返回 false.

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

->判斷迭代器[start, end] 區間類的元素在cmp條件下是否構成一個堆. 是返回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] 區間內的元素生成一個堆. 默認使用 元素類型  操作符 進行判斷堆的類型, 因此生成的是大頂堆 .

 ->當使用了 版本2, 系統使用 用戶定義的 cmp 函數來構建一個堆 

 ->值得注意的是,  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)的數據再做成一個堆。 

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

->如果使用了 版本2 , 在交換了 首元素末元素 ,使用 cmp 規則 重新構建一個堆.

 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 ); 

 -> 算法假設迭代器區間[start, end-1)內的元素已經是一個有效堆, 然后把 end-1 迭代器所指元素加入堆. 

 -> 如果使用了 cmp 參數, 將使用 cmp 規則構建堆.        

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); 

-> 堆結構被完全破壞, 相當于對元素進行排序, 效果和排序算法類似.  

-> 如果使用了 cmp 參數, 將使用 cmp 規則排序堆.

 示例代碼:

#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)的數據再做成一個堆。
  
//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 閱讀(1019) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   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>
            欧美不卡在线| 欧美一级理论性理论a| 欧美激情2020午夜免费观看| 久久久久国产精品人| 在线播放中文字幕一区| 欧美成人有码| 欧美精品一区二区久久婷婷| 一本色道久久综合狠狠躁篇怎么玩| 亚洲国产精品一区在线观看不卡| 噜噜噜噜噜久久久久久91 | 午夜日韩在线观看| 国内外成人免费激情在线视频 | 亚洲国产精品久久久久婷婷884 | 亚洲一区二区四区| 国产一区二区三区久久久| 久久青青草综合| 欧美高清视频在线| 午夜精品一区二区三区在线视| 午夜精品久久久久| 亚洲精品日本| 欧美在线免费| 一本久久综合亚洲鲁鲁| 午夜精品三级视频福利| 亚洲国产精品视频一区| 99亚洲精品| 精品成人在线观看| 日韩视频在线一区二区三区| 国产欧美亚洲一区| 亚洲黄色一区二区三区| 国产精品嫩草久久久久| 欧美国产综合| 国产麻豆日韩| 亚洲精品久久久久久久久久久久 | 亚洲精品在线观| 欧美一区2区三区4区公司二百| 亚洲丰满在线| 亚洲欧美日韩一区二区三区在线观看| 亚洲电影视频在线| 亚洲愉拍自拍另类高清精品| 亚洲毛片在线| 久久久久久亚洲精品杨幂换脸| 中文日韩电影网站| 老色鬼精品视频在线观看播放| 亚洲欧美日韩视频一区| 免费在线观看精品| 久久久久久午夜| 国产精品日韩欧美| 一本色道88久久加勒比精品| 亚洲激情午夜| 久久久噜噜噜久噜久久| 久久av最新网址| 国产精品高潮呻吟| 亚洲精品国产精品乱码不99按摩| 伊人男人综合视频网| 午夜影院日韩| 久久久久国产精品一区二区| 国产精品久久久久久久久免费| 91久久国产自产拍夜夜嗨| 在线成人av| 久久久一本精品99久久精品66| 欧美一区二区视频在线观看| 国产精品亚洲а∨天堂免在线| 99re在线精品| 亚洲婷婷综合久久一本伊一区| 男男成人高潮片免费网站| 欧美成人一区二区三区在线观看| 伊人久久亚洲影院| 蜜臀久久99精品久久久久久9| 久久免费的精品国产v∧| 国内精品视频在线观看| 久久精品最新地址| 免费不卡在线视频| 亚洲激情影视| 欧美精品网站| 在线亚洲+欧美+日本专区| 亚洲影视九九影院在线观看| 欧美丝袜一区二区三区| 中日韩男男gay无套| 午夜精品久久久久久久久久久久| 国产精品jizz在线观看美国 | 免费看亚洲片| 亚洲精品欧美激情| 亚洲小说欧美另类社区| 国产毛片一区| 毛片av中文字幕一区二区| 亚洲黄色影片| 香港成人在线视频| 国内精品久久久久久久影视麻豆| 久久久天天操| 日韩午夜在线视频| 欧美在线视频日韩| 亚洲高清三级视频| 欧美日韩一区二区三区免费看| 亚洲私人黄色宅男| 美女久久一区| 一区二区三区日韩欧美| 国产欧美精品va在线观看| 鲁大师成人一区二区三区| 一本色道久久综合亚洲精品不卡| 欧美在线观看一区二区| 亚洲国产精品视频一区| 国产精品99免费看| 久久婷婷人人澡人人喊人人爽| 亚洲人成免费| 久久久久久91香蕉国产| 一区二区三区精品视频| 韩国美女久久| 欧美午夜剧场| 美女黄网久久| 欧美在线视频免费| 亚洲精品日韩综合观看成人91| 久久精品一区二区| 一本色道久久综合狠狠躁篇的优点 | 亚洲人成网站色ww在线| 久久免费视频这里只有精品| 亚洲一区3d动漫同人无遮挡| 影音先锋国产精品| 国产区二精品视| 欧美日韩一区不卡| 免费不卡在线观看av| 午夜久久影院| 亚洲视频欧洲视频| 亚洲国产毛片完整版| 久久久久久久久一区二区| 亚洲综合激情| 夜夜嗨av一区二区三区四区| 激情偷拍久久| 国产一区视频网站| 国产精品欧美激情| 欧美日韩1区| 欧美精品一区二区三区高清aⅴ| 久久免费高清视频| 久久爱另类一区二区小说| 亚洲一区二区三区在线| 日韩一级精品视频在线观看| 亚洲黄页视频免费观看| 欧美成人在线免费视频| 免费一级欧美片在线播放| 久久久噜噜噜久久人人看| 欧美伊人久久| 欧美一区二区啪啪| 欧美亚洲免费电影| 香蕉国产精品偷在线观看不卡| 在线一区二区三区做爰视频网站 | 午夜精品美女久久久久av福利| 一本色道久久综合亚洲精品婷婷 | 国产精品s色| 欧美三日本三级少妇三2023| 欧美日本不卡高清| 欧美人与性动交α欧美精品济南到| 美女精品一区| 你懂的一区二区| 欧美精品xxxxbbbb| 欧美日本亚洲视频| 国产精品久久福利| 国产精品视频精品视频| 国产精品一国产精品k频道56| 国产精品v日韩精品| 国产精品综合久久久| 黄色亚洲在线| 91久久午夜| 亚洲午夜精品国产| 性高湖久久久久久久久| 久久综合网络一区二区| 欧美激情一区二区三级高清视频| 欧美大片在线看免费观看| 亚洲激情网站免费观看| 亚洲深爱激情| 久久爱www| 欧美国产高潮xxxx1819| 国产精品第一区| 国产亚洲成人一区| 亚洲国产欧美一区二区三区同亚洲| 亚洲精品麻豆| 午夜精品久久久久久久久久久久久 | 亚洲精品一二| 欧美一区二区高清| 免费亚洲电影在线| 夜夜夜精品看看| 久久不射中文字幕| 欧美久久视频| 国内伊人久久久久久网站视频| 亚洲日本无吗高清不卡| 亚洲欧美久久久| 欧美黄色成人网| 亚洲欧美另类在线| 欧美高清不卡| 国产亚洲精品一区二555| 亚洲日韩欧美视频一区| 欧美在线视频在线播放完整版免费观看 | 中文一区二区在线观看| 久久九九99视频| 日韩午夜电影| 欧美~级网站不卡| 国产一区二区三区高清| 亚洲调教视频在线观看| 欧美国产一区视频在线观看| 亚洲无限av看| 欧美日韩裸体免费视频| 亚洲日产国产精品|