STL學習之map容器(3)
map::find
iterator find ( const key_type& x );
const iterator find( const key_type& x) const;
獲取元素的迭代器
獲取map容器中指定鍵值x的元素,如果找到,返回此元素的迭代器,否則返回map::end()的迭代器(即查詢到容器的末尾都沒有找到此元素)。
前面章節介紹的map::count成員函式也可以有類似的功能,詳見介紹。
引數
x
需要查詢的鍵值。
Key_type是map容器定義的作為Key別名的一個成員型別。
返回值
指向元素的迭代器,如果指定的鍵值找到,返回找到元素的迭代器或者指定的鍵值沒有找到返回map::end。
例項:
#include <iostream> #include <map> using namespace std; int main(void) { map<char, int> mymap; map<char, int>::iterator it; mymap['a'] = 50; mymap['b'] = 100; mymap['c'] = 150; mymap['d'] = 200; it = mymap.find('b'); mymap.erase(it); mymap.erase(mymap.find('d')); cout << "mymap contains:" << endl; for (it = mymap.begin(); it != mymap.end(); ++it) cout << (*it).first << "=>" << (*it).second << endl; cout << " elements in mymap:" << endl; cout << " a=> " << mymap.find('a')->second << endl; cout << " b=> " << mymap.find('b')->second << endl; cout << " c=> " << mymap.find('c')->second << endl; cout << " d=> " << mymap.find('d')->second << endl; return 0; }
執行結果:
[email protected]:~/mycode/STL$ g++ map_find.cpp -o map_find
[email protected]:~/mycode/STL$ ./map_find
mymap contains:
a=>50
c=>150
elements in mymap:
a=> 50
b=> -1076412860 //不存在
c=> 150
d=> -1076412860 //不存在
map::erase
void erase( iterator postion ); size_type erase( const key_type& x ); void erase( iterator first, iterator last );
刪除元素
從map容器中刪除一個元素或者一個區間的元素([first, last));
引數
postion
指向被map容器中刪除元素迭代器指標。
iterator是一個成員型別,定義作為雙向迭代器型別。
x
從map容器中移除的元素值。
first,last
指定迭代器區間[first,last),需要從map容器中刪除的區間。
返回值
僅第二個版本,函式返回需要刪除的元素個數。
例項:
// erasing from map
#include <iostream>
#include <map>
using namespace std;
int main ()
{
map<char,int> mymap;
map<char,int>::iterator it;
// insert some values:
mymap['a']=10;
mymap['b']=20;
mymap['c']=30;
mymap['d']=40;
mymap['e']=50;
mymap['f']=60;
it=mymap.find('b');
mymap.erase (it); // erasing by iterator
mymap.erase ('c'); // erasing by key
it=mymap.find ('e');
mymap.erase ( it, mymap.end() ); // erasing by range
// show content:
for ( it=mymap.begin() ; it != mymap.end(); it++ )
cout << (*it).first << " => " << (*it).second << endl;
return 0;
}
執行結果:
[email protected]:~/mycode/STL$ g++ map_erase.cpp -o map_erase
[email protected]:~/mycode/STL$ ./map_erase
a => 10
d => 40
map::lower_bound
iterator lower_bound( const key_type& x );
const iterator lower_bound( const key_type& x ) const;
返回指向下界的迭代器
返回一個指向容器中第一個鍵值大於或者等於x元素迭代器。
map::upper_bound
iterator upper_bound( const key_type& x );
const iterator upper_bound( const key_type& x ) const;
返回指向上界的迭代器
返回一個指向容器中第一個鍵值大於x元素迭代器。
從定義中可以看到upper_bound和lower_bound區別。
upper_bound和lower_bound引數
x
比較的鍵值。
例項:
#include <iostream>
#include <map>
using namespace std;
int main(void)
{
map<char, int> mymap;
map<char, int>::iterator it, itlow, itup;
mymap['a'] = 20;
mymap['b'] = 40;
mymap['c'] = 60;
mymap['d'] = 80;
mymap['e'] = 100;
itlow = mymap.lower_bound('b');
itup = mymap.upper_bound('d');
mymap.erase(itlow, itup);
for( it= mymap.begin(); it != mymap.end(); ++it)
cout << (*it).first << "=>" << (*it).second << endl;
return 0;
}
執行結果:
[email protected]:~/mycode/STL$ g++ map_bound.cpp -o map_bound
[email protected]:~/mycode/STL$ ./map_bound
a=>20
e=>100
相關推薦
STL學習之map容器(3)
map::find iterator find ( const key_type& x ); const iterator find( const key_type& x) const; 獲取元素的迭代器 獲取map容器中指定鍵值x的元素,如果找到,返回
Linux學習之路--Mariadb(3)基本使用操作【20】---20180123
result run page 提高 進行 組成 varchar alias pan 一、MariaDB程序1、MariaDB的程序組成Client mysql:CLI交互式客戶端程序 mysqldump,mysqladmin...Server mysq
MySQL學習之路4(3)
資料庫的基本操作3 4.刪除資料表 4.1刪除沒有被關聯的表 DROP TABLE可以一次刪除一個或多個沒有被其他表關聯的的資料表。語法格式如下: DROP TABLE [IF EXISITS] 表1,表2,……,表n; 如果要刪除的資料表不存在,則會出現一條錯誤資訊: ERROR 10
深度學習之PyTorch實戰(3)——實戰手寫數字識別
上一節,我們已經學會了基於PyTorch深度學習框架高效,快捷的搭建一個神經網路,並對模型進行訓練和對引數進行優化的方法,接下來讓我們牛刀小試,基於PyTorch框架使用神經網路來解決一個關於手寫數字識別的計算機視覺問題,評價我們搭建的模型的標準是它是否能準確的對手寫數字圖片進行識別。
STL學習筆記— —無序容器(Unordered Container)
ring 最大 布局 size fad oca rgs template max 簡單介紹 在頭文件<unordered_set>和<unordered_map> 中定義 namespace std { templa
[知了堂學習筆記]_JS小遊戲之打飛機(3)-飛機之間的互相撞擊,boss的出現,以及控制boss死亡
時間 i++ score console function sss 間隔 app tint 我的小飛機和敵軍小飛機撞擊的效果的實現: 1 /** 2 * 定義我的飛機與敵機碰撞的方法: 3 */ 4 function destoryMyPlane(){ 5
20180813視頻筆記 深度學習基礎上篇(1)之必備基礎知識點 深度學習基礎上篇(2)神經網絡模型視頻筆記:深度學習基礎上篇(3)神經網絡案例實戰 和 深度學習基礎下篇
計算 概念 人臉識別 大量 png 技巧 表現 lex github 深度學習基礎上篇(3)神經網絡案例實戰 https://www.bilibili.com/video/av27935126/?p=1 第一課:開發環境的配置 Anaconda的安裝 庫的安裝 Windo
TensorFlow學習筆記之原始碼分析(3)---- retrain.py
"""簡單呼叫Inception V3架構模型的學習在tensorboard顯示了摘要。 這個例子展示瞭如何採取一個Inception V3架構模型訓練ImageNet影象和訓練新的頂層,可以識別其他類的影象。 每個影象裡,頂層接收作為輸入的一個2048維向量。這
STL之map實現(一)
map其實就是一個對映,想象你在使用新華字典的時候,輸入一個單詞,就能得到這個單詞的意思,這樣就形成了一個對映。 為了實現map,你需要有類和物件,虛擬函式,模板,pair型別基礎 首先,介紹一下模板,看下面的函式(重複做同樣事情的函式,只是型別不一樣) int sum
Qt 學習之路 2(38):儲存容器
儲存容器(containers)有時候也被稱為集合(collections),是能夠在記憶體中儲存其它特定型別的物件,通常是一些常用的資料結構,一般是通用模板類的形式。C++ 提供了一套完整的解決方案,作為標準模板庫(Standard Template Library
FPGA學習之數碼管(封裝)顯示時間
rtu 環境 tro gb2312 配置 fpga 模塊 rtl 顯示時間 一、實驗目的:學習數碼管封裝以及顯示時間。二、實驗環境:FPGA開發板AX301,Quartus ii三、實驗介紹:將數碼管顯示模塊封裝起來,同時通過不斷讀取RTC時鐘的時分秒值,將之顯示在數碼管。
STM32學習之路-LCD(4)<顯示字符>
計算 ack 字節 ring oid ng- 透明 標點符號 函數 昨晚瘋狂的打了一夜的LOL,感覺L多了,今天一天精神萎靡.還是繼續把顯示字符給看了,可是在猶豫要不要寫這篇文章 事實上寫的東西也就是copy別人家的代碼,不想寫那麽多,就記錄下自己困惑的地方吧.也
Java之旅hibernate(3)——第一個hibernate的樣例
數據庫方言 自由 article 存儲 代理 mit rup 方便 post 在解說樣例之前。我們首先來理解一下hibernate的工作原理。理解原理將會幫助我們更好地理解hibernate和運用hibernate。 1. 原理圖 利用hibe
Spring源碼分析之IOC容器(一)
util 感覺 不能 end bsp initial 博文 要掌握 sof Spring作為當今風靡世界的Web領域的第一框架,作為一名Java開發程序員是一定要掌握的,除了需要掌握基本的使用之外,更需要掌握其實現原理,因為我們往往在開發的過程中,會出現各種各樣的異常問
Swift學習之元組(Tuple)
元素 first 類型 hello 元組 world ron test str 定義 元組是由若幹個類型的數據組成,組成元組的數據叫做元素,每個元素的類型都可以是任意的。 用法一 let tuples1 = ("Hello", "World", 2017) //元組跟數組一
小白學習之Code First(三)
數據庫 change chang chan inf 模型 code test nbsp 上下文Context類中的base構造器的幾個方法重置(1、無參 2、database name 3 、 連接字符串) 無參:如果基類base方法中無參,code first將會以 :{
小白學習之Code First(二)
文件中 build 默認 dbm pcre student 技術分享 使用 類名 Code First約定: 註:EDMX模板 (SSDL:存儲模型=>數據庫表 ,CSDL:概念模型=>實體,C-S模型=>存儲和概念模型之間的映射關系) System.Da
輕松入門機器學習之概念總結(二)
消息 目的 作者 固定 erp 效率 dev 常用 度量 歡迎大家前往雲加社區,獲取更多騰訊海量技術實踐幹貨哦~ 作者:許敏 接上篇:機器學習概念總結筆記(一) 8)邏輯回歸 logistic回歸又稱logistic回歸分析,是一種廣義的線性回歸分析模型,常用於數據挖掘
Qt 學習之路 2(40):隱式數據共享
深拷貝和淺拷貝 != 這樣的 pointer map painter pos 轉載 多線程 博客轉載自:https://www.devbean.net/2013/01/qt-study-road-2-implicit-sharing/ Qt 中許多 C++ 類使用了隱式數據
Scala語言學習之環境安裝(1)
下載 erlang 利用 ons 拆分 直接 線程模型 新功能 scala ==> Scala語言簡介 --> Scala編程語言抓住了很多開發者的眼球。如果你粗略瀏覽Scala的網站,你會覺得Scala是一種純粹的面向對象編程語言,而又無縫地結合