進階篇_map容器(儲存鍵值對)
1. 三種向map容器插入資料對的方法(等效)
map<int, Employee> mapEmployee;
Employee emp1;
mapEmployee.insert(pair<int, Employee>(1, emp1)); //法一插入:使用pair建立員工號1和員工物件emp1的對映關係,並插入map容器中
mapEmployee.insert(map<int, Employee>::value_type(1, emp1)); //法二插入:使用value_type型別實現資料的插入
mapEmployee[1983] = emp1; //法三插入:向map容器中插入一個資料對(1983, emp1)
2. 根據鍵找到對應的值
a. 通過迭代器輸出資料對的鍵和值(遍歷):
for(map<int, Employee>::iterator it; it!=mapEmployee.end(); ++it)
{
cout<<it->first<<endl; //通過迭代器輸出資料對的鍵和值
cout<<it->second.getname()<<endl;
}
b.通過 map容器的find()函式查詢某一個鍵(也通過迭代器,這種方式用的更多):
int findkey = 1; //定義要查詢的鍵
map<int, Employee>::iterator it = mapEmployee.find(findkey);
cout<<it->first<<" "<<it->second.getname()<<endl;
3. 訪問某個範圍的資料對
int fromkey = 1;
int tokey = 1000; //定義鍵的範圍
map<int, Employee>::iterator itfrom = mapEmployee.lower_bound(fromkey);
map<int, Employee>::iterator itto = mapEmployee.upper_bound(tokey); //用迭代器表示起始位置和終止位置
for(map<int, Employee>::iterator it = itfrom; it!=itto; ++it)
{
cout<<it->first<<endl; //輸出範圍內的所有資料
}
mapEmployee.erase(itfrom, itto);//刪除範圍內的所有資料
以上程式碼中,分別使用了lower_bound()與upper_bound()函式來獲得指向這個範圍的起始位置和終止位置的迭代器相關文章
- 實現鍵值對儲存(二):以現有鍵值對儲存為模型模型
- 實現鍵值對儲存(一):什麼是鍵值對儲存,為什麼要實現它
- 實現鍵值對儲存(0):目錄
- 進階篇_vector容器
- 實現鍵值對儲存(四):API設計API
- TIDB儲存TiKV的鍵值對資料TiDB
- MySQL的鍵值儲存以及與MongoDB的對比MySqlMongoDB
- 進階篇_STL中的容器
- Android鍵值對儲存成XML檔案SharedPreferencesAndroidXML
- 實現鍵值對儲存(五):雜湊表實現
- C++進階(map+set容器模擬實現)C++
- 簡單的鍵值儲存測試
- 用鍵值儲存實現MVCC模式MVC模式
- C++_STL—容器Map篇C++
- GO語言————8.6 將 map 的鍵值對調Go
- docker容器儲存Docker
- 提升Raft以加速分散式鍵值儲存Raft分散式
- 自定義Map集合,將重複的鍵值對不進行覆蓋而是進行疊加
- 容器雲對接持久化儲存並使用持久化
- 981-基於時間的鍵值儲存
- 981. 基於時間的鍵值儲存
- docker學習系列2儲存對容器的修改Docker
- 詳解Java 容器(第④篇)——容器原始碼分析 - MapJava原始碼
- Gartner:通用高階儲存陣列關鍵能力陣列
- 容器儲存介面--CSI
- 容器附加儲存(CAS)是雲原生儲存
- C++U7-06-圖的進階儲存C++
- Java進階06 容器Java
- 實現鍵值對儲存(三):Kyoto Cabinet和LevelDB的架構比較分析架構
- 帶你玩轉七牛雲端儲存——高階篇
- 儲存篇(1)
- 儲存篇(2)
- 儲存篇(3)
- 容器化RDS—— 計算儲存分離 or 本地儲存
- 雲原生儲存詳解:容器儲存與 K8s 儲存卷K8S
- PDF.NET框架學習篇之SQL-MAP使用儲存過程框架SQL儲存過程
- Android進階:一、日誌列印和儲存策略Android
- Flutter入門進階之旅(十二)Flutter 資料儲存Flutter