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

面對現(xiàn)實,超越自己
逆水行舟,不進則退
posts - 269,comments - 32,trackbacks - 0
C++ Maps & MultiMaps

C++ Maps
是一種關(guān)聯(lián)式容器,包含“關(guān)鍵字/值”對。
C++ Multimapsmaps很相似,但是MultiMaps允許重復的元素。
1.begin() 返回指向map頭部的迭代器
2.clear() 刪除所有元素
3.count() 返回指定元素出現(xiàn)的次數(shù)
   語法:
   size_type count( const KEY_TYPE &key );
   //返回map中鍵值等于key的元素的個數(shù)
4.empty() 如果map為空則返回true
5.end() 返回指向map末尾的迭代器
6.equal_range() 返回特殊條目的迭代器對
   語法:
   pair equal_range( const KEY_TYPE &key );
   返回兩個迭代器,指向第一個鍵值為key的元素和指向最后一個鍵值為key的元素
7.erase() 刪除一個元素
   語法:
   void erase( iterator i ); //刪除i元素
   void erase( iterator start, iterator end ); //刪除從start開始到end(不包括end)結(jié)束的元素
   size_type erase( const key_type &key );
   //刪除等于key值的所有元素(返回被刪除的元素的個數(shù))
8.find() 查找一個元素
   語法:
iterator find( const key_type &key );
   查找等于key值的元素,并返回指向該元素的迭代器;
   //如果沒有找到,返回指向集合最后一個元素的迭代器.
9.get_allocator() 返回map的配置器
10.insert() 插入元素
   語法:
   iterator insert( iterator pos, const pair<KEY_TYPE,VALUE_TYPE> &val );
   //插入valpos的后面,然后返回一個指向這個元素的迭代器
   void insert( input_iterator start, input_iterator end );
   //插入startend的元素到map
   pair<iterator, bool> insert( const pair<KEY_TYPE,VALUE_TYPE> &val );
   //只有在val不存在時插入val。返回指向被插入元素的迭代器和描述是否插入的bool
11.key_comp() 返回比較元素key的函數(shù)
   語法:
   key_compare key_comp();
   //返回一個用于元素間值比較的函數(shù)對象
12.lower_bound() 返回鍵值>=給定元素的第一個位置
   語法:
   iterator lower_bound( const key_type &key );
   //返回一個指向大于或者等于key值的第一個元素的迭代器
13.max_size() 返回可以容納的最大元素個數(shù)
14.rbegin() 返回一個指向map尾部的逆向迭代器
15.rend() 返回一個指向map頭部的逆向迭代器
16.size() 返回map中元素的個數(shù)
17.swap() 交換兩個map
   語法:
   void swap( map &obj );
   //swap()交換obj和現(xiàn)map中的元素
18.upper_bound() 返回鍵值>給定元素的第一個位置
   語法:
   iterator upwer_bound( const key_type &key );
   //返回一個指向大于key值的第一個元素的迭代器
19.value_comp() 返回比較元素value的函數(shù)
   語法:
   value_compare value_comp();
//返回一個用于比較元素value的函數(shù)

MapSTL的一個關(guān)聯(lián)容器,它提供一對一(其中第一個可以稱為關(guān)鍵字,每個關(guān)鍵字只能在map中出現(xiàn)一次,第二個可能稱為該關(guān)鍵字的值)的數(shù)據(jù)處理能力,由于這個特性,map內(nèi)部的實現(xiàn)自建一顆紅黑樹(一種非嚴格意義上的平衡二叉樹),這顆樹具有對數(shù)據(jù)自動排序的功能。

下面舉例說明什么是一對一的數(shù)據(jù)映射。比如一個班級中,每個學生的學號跟他的姓名就存在著一一映射的關(guān)系,這個模型用map可能輕易描述,很明顯學號用int描述,姓名用字符串(string)描述。

下面給出map描述代碼:

1.聲明方式:     

1       Map<intstring> mapStudent;

2.數(shù)據(jù)的插入

第一種:用insert函數(shù)插入pair數(shù)據(jù)

1       Map<intstring> mapStudent; 
2       mapStudent.insert(pair<intstring>(1, “student_one”)); 

      第二種:用insert函數(shù)插入value_type數(shù)據(jù)

1       Map<intstring> mapStudent; 
2       mapStudent.insert(map<intstring>::value_type (1, “student_one”)); 

     第三種:用數(shù)組方式插入數(shù)據(jù)

1       Map<intstring> mapStudent; 
2       mapStudent[1= “student_one”; 
3       mapStudent[2= “student_two”; 

    3. map的大小

1 Int nSize = mapStudent.size(); 

    4. 數(shù)據(jù)的遍歷

第一種:應用前向迭代器

1       map<intstring>::iterator iter; 
2       for(iter = mapStudent.begin(); iter !=   mapStudent.end(); iter++
3       Cout<<iter->first<<” ”<<iter->second<<end; 

     第二種:應用反相迭代器   

1       map<intstring>::reverse_iterator iter; 
2       for(iter = mapStudent.rbegin(); iter != mapStudent.rend(); iter++
3       Cout<<iter->first<<” ”<<iter->second<<end;

第三種:用數(shù)組方式     

1       int nSize = mapStudent.size() 
2       for(int nIndex = 1; nIndex <= nSize; nIndex++
3       Cout<<mapStudent[nIndex]<<end;

5. 數(shù)據(jù)的查找(包括判定這個關(guān)鍵字是否在map中出現(xiàn))

第一種:用count函數(shù)來判定關(guān)鍵字是否出現(xiàn),但是無法定位數(shù)據(jù)出現(xiàn)位置

第二種:用find函數(shù)來定位數(shù)據(jù)出現(xiàn)位置它返回的一個迭代器,

當數(shù)據(jù)出現(xiàn)時,它返回數(shù)據(jù)所在位置的迭代器,如果map中沒有要查找的數(shù)據(jù),它返回的迭代器等于end函數(shù)返回的迭代器

 1 int main() 
 2 
 3       Map<intstring> mapStudent; 
 4       mapStudent.insert(pair<intstring>(1, “student_one”)); 
 5       mapStudent.insert(pair<intstring>(2, “student_two”)); 
 6       mapStudent.insert(pair<intstring>(3, “student_three”)); 
 7       map<intstring>::iterator iter; 
 8       iter = mapStudent.find(1); 
 9       if(iter != mapStudent.end()) 
10       { 
11          Cout<<”Find, the value is ”<<iter->second<<endl; 
12       } 
13       Else 
14       { 
15          Cout<<”Do not Find”<<endl; 
16       } 
17 

第三種:這個方法用來判定數(shù)據(jù)是否出現(xiàn)

Lower_bound函數(shù)用法,這個函數(shù)用來返回要查找關(guān)鍵字的下界(是一個迭代器)

Upper_bound函數(shù)用法,這個函數(shù)用來返回要查找關(guān)鍵字的上界(是一個迭代器)

例如:map中已經(jīng)插入了1234的話,如果lower_bound(2)的話,返回的2,而upper-bound2)的話,返回的就是3

Equal_range函數(shù)返回一個pairpair里面第一個變量是Lower_bound返回的迭代器,pair里面第二個迭代器是Upper_bound返回的迭代器,如果這兩個迭代器相等的話,則說明map中不出現(xiàn)這個關(guān)鍵字,程序說明

1 mapPair = mapStudent.equal_range(2); 
2 if(mapPair.first == mapPair.second) 
3 cout<<”Do not Find”<<endl; 

6. 數(shù)據(jù)的清空與判空

清空map中的數(shù)據(jù)可以用clear()函數(shù),判定map中是否有數(shù)據(jù)可以用empty()函數(shù),它返回true則說明是空map

7. 數(shù)據(jù)的刪除

這里要用到erase函數(shù),它有三個重載了的函數(shù)

迭代器刪除   

1    iter = mapStudent.find(1); 
2    mapStudent.erase(iter);

用關(guān)鍵字刪除  

1 Int n = mapStudent.erase(1);//如果刪除了會返回1,否則返回0

用迭代器,成片的刪除

1 mapStudent.earse(mapStudent.begin(),  mapStudent.end()); 
2 //成片刪除要注意的是,也是STL的特性,刪除區(qū)間是一個前閉后開的集合
3 

posted on 2012-06-04 16:57 王海光 閱讀(1863) 評論(0)  編輯 收藏 引用 所屬分類: STL
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美性一区二区| 国产精品入口尤物| 午夜亚洲一区| 亚洲区国产区| 国产精品久久久久久久久果冻传媒| 一区二区激情视频| 欧美日韩高清不卡| 久久中文字幕导航| 欧美一区二区三区免费看 | 老司机免费视频一区二区三区| 亚洲国产99精品国自产| 欧美一区二区三区的| 99国产欧美久久久精品| 欧美日韩爆操| 欧美日韩一区二区欧美激情| 欧美成人免费在线观看| 欧美国产日韩精品| 欧美日韩免费看| 国产精品地址| 激情综合久久| 日韩视频一区二区三区在线播放| 亚洲激情小视频| 亚洲三级性片| 久久成人18免费观看| 你懂的亚洲视频| 夜夜嗨av一区二区三区网站四季av | 国产日韩成人精品| 国产欧美日韩免费| 亚洲国内自拍| 午夜精品久久久久久久蜜桃app| 国产精品久久久久久久第一福利| 国产精品福利影院| 国户精品久久久久久久久久久不卡| 欧美亚洲在线| 欧美一区二区免费| 久久亚洲一区二区三区四区| 欧美视频在线观看免费| 国产欧美日韩精品一区| 亚洲精品一区二| 久久综合五月| 销魂美女一区二区三区视频在线| 麻豆精品视频在线观看视频| 国产精品国产三级国产普通话99| 亚洲高清在线| 老司机午夜免费精品视频| 亚洲欧美日韩精品久久| 国产精品毛片一区二区三区 | 亚洲免费小视频| 欧美日韩福利视频| 夜夜嗨av一区二区三区中文字幕| 欧美福利一区二区| 欧美a级一区| 亚洲视频碰碰| 亚洲天堂av图片| 国产欧美日韩高清| 欧美成人精精品一区二区频| 久久亚洲综合网| 亚洲美女一区| 亚洲自拍电影| 亚洲国产欧美久久| 99视频一区二区三区| 国产精品一区二区男女羞羞无遮挡 | 国产亚洲日本欧美韩国| 午夜视频在线观看一区二区| 性色av香蕉一区二区| 最新日韩av| 性8sex亚洲区入口| 一区二区三区四区蜜桃| 小处雏高清一区二区三区| 亚洲黄色免费网站| 欧美一区二区福利在线| 91久久精品国产| 亚洲免费一在线| 亚洲欧美久久久久一区二区三区| 亚洲欧美亚洲| 在线一区观看| 欧美中文字幕在线| 久久男人资源视频| 亚洲一区二区三区午夜| 性久久久久久久久久久久| 日韩午夜电影在线观看| 欧美制服丝袜第一页| 国产精品99久久久久久久vr| 媚黑女一区二区| 欧美肥婆在线| 国产女主播在线一区二区| 最新中文字幕一区二区三区| 91久久国产综合久久91精品网站| 久久九九热re6这里有精品| 久久久噜噜噜久久| 在线欧美视频| 另类图片综合电影| 亚洲国产精品久久久久秋霞影院 | 亚洲一区国产精品| 欧美日韩一区二区三区四区五区| 欧美大片国产精品| 亚洲国产婷婷香蕉久久久久久99| 久久精品国产亚洲一区二区三区| 久久久久久精| 亚洲精品一区二区三区婷婷月 | 久久精品99国产精品酒店日本| 国产精品久久久久久久久| 欧美在线免费视频| 欧美岛国在线观看| 午夜综合激情| 亚洲电影专区| 国产欧美一区二区视频| 女仆av观看一区| 欧美亚洲一区二区在线| 亚洲人成网站色ww在线| 国产精品美腿一区在线看| 欧美二区在线播放| 亚洲欧美色婷婷| 亚洲视频一区二区免费在线观看| 麻豆精品视频| 久久精品国产亚洲一区二区三区| 亚洲美女视频网| 在线欧美一区| 1769国产精品| 激情欧美一区二区| 亚洲激情视频网| 香蕉久久精品日日躁夜夜躁| 在线亚洲免费| 亚洲美女视频| 亚洲黄色一区二区三区| 黄色精品在线看| 国产九九精品| 国产精品亚洲片夜色在线| 国产精品h在线观看| 欧美三级午夜理伦三级中文幕| 久久天天躁狠狠躁夜夜爽蜜月| 亚洲一区二区在线免费观看| 亚洲一区二区欧美日韩| 99视频精品| 欧美在线精品一区| 六十路精品视频| 亚洲第一福利社区| 99精品欧美一区| 亚洲欧美在线看| 麻豆国产精品va在线观看不卡| 欧美成人精品h版在线观看| 欧美日韩一区二区欧美激情| 国产精品久久网站| 亚洲高清毛片| 亚洲一区二区在线免费观看视频| 久久国产免费看| 亚洲激情在线观看| 日韩一级成人av| …久久精品99久久香蕉国产| 一本色道久久综合| 久久亚洲欧美| 亚洲制服丝袜在线| 欧美成人有码| 亚洲第一黄色网| 久久精品国产一区二区三区| 亚洲国产老妈| 久久久av网站| 一区免费观看| 久久亚洲高清| 久久精品国产69国产精品亚洲 | 亚洲综合第一页| 葵司免费一区二区三区四区五区| 99国产精品久久久久久久| 欧美大片免费| 亚洲福利视频免费观看| 久久久国产精品一区二区三区| 亚洲一区二区三区三| 国产精品一级久久久| 亚洲女性裸体视频| 午夜精品成人在线| 国内成+人亚洲+欧美+综合在线| 欧美日韩国产三区| 亚洲在线视频网站| 亚洲一品av免费观看| 国产亚洲欧美一级| 亚洲电影自拍| 国产小视频国产精品| 国产曰批免费观看久久久| 一区二区三区导航| 一本色道久久综合一区 | 久久精品国产久精国产思思| 中日韩高清电影网| 国产伊人精品| 亚洲国产精品第一区二区三区| 欧美99在线视频观看| 亚洲在线观看视频| 久久久久久久999精品视频| 一区二区三区四区国产精品| 欧美一区二区三区在线免费观看| 精品99视频| 亚洲免费在线播放| 亚洲视频电影在线| 欧美高清视频一二三区| 久久久亚洲一区| 欧美日韩亚洲国产精品| 久久综合中文| 国语自产偷拍精品视频偷| 99re热这里只有精品免费视频| 在线 亚洲欧美在线综合一区| 亚洲专区在线视频|