介紹:
map是stl的乙個關聯容器,它提供一對一(其中第乙個可以稱為關鍵字,每個關鍵字只能在map中出現一次,第二個可能稱為該關鍵字的值)的資料 處理能力,由於這個特性,它完成有可能在我們處理一對一資料的時候,在程式設計上提供快速通道。這裡說下map內部資料的組織,map內部自建一顆紅黑樹(一 種非嚴格意義上的平衡二叉樹),這顆樹具有對資料自動排序的功能,所以在map內部所有的資料都是有序的,後邊我們會見識到有序的好處。
map是一類關聯式容器。它的特點是增加和刪除節點對迭代器的影響很小,除了那個操作節點,對其他的節點都沒有什麼影響。
對於迭代器來說,可以修改實值,而不能修改key。
使用:1、標頭檔案
#include
2、初始化
mapmp;
3、基本操作
(1). 容量
大小:mp.size();
最大容量: mp.max_size();
判空: mp.empty();
(2). 修改
插入元素: mp.insert();
刪除元素: mp.erase();
清空元素: mp.clear();
(3)迭代器
map::iterator it;
開始指標:mp.begin();
反向迭代器
map::
reverse_iterator rit;
mp.rbegin()、mp.rend()
(5)查詢
mp.sfind(key);
4、例程
#include "stdafx.h"
#include
#include
#include
#include
using namespace std;
int main(int argc, char* argv)
mp.erase(1);
it = mp.begin();
printf("erase loop printf:\r\n");
for(; it != mp.end(); it ++)
mp.clear();
it = mp.begin();
printf("clear loop printf:\r\n");
for(; it != mp.end(); it ++)
mp.insert(pair(1, "value_1"));
mp.insert(pair(2, "value_2"));
mp.insert(pair(3, "value_3"));
mp.insert(pair(4, "value_4"));
mp.insert(pair(5, "value_5"));
mp.insert(pair(6, "value_6"));
mp.insert(pair(7, "value_7"));
it = mp.begin();
printf("insert loop printf:\r\n");
for(; it != mp.end(); it ++)
it = mp.find(5);
if(it != mp.end())
else
it = mp.find(10);
if(it != mp.end())
else
return 0;
}
C Vector用法(帶例程)
介紹 vector是可變大小陣列的序列容器。vector是連續儲存的,與陣列儲存相同,區別是大小是動態改變的,可隨機訪問,因此vector訪問速度快。vector在末尾刪除新增元素時相對高效,若在其他任意位置新增刪除元素則效率更低。使用 1 標頭檔案 include 2 初始化 vectorvec ...
C MAP 基本用法
map內部資料的組織,map內部自建一顆紅黑樹 一種非嚴格意義上的平衡二叉樹 這顆樹具有對資料自動排序的功能,所以在map內部所有的資料都是有序的。include include using namespace std typedef mapmapstudent typedef map iterat...
C map用法詳解
map是stl的乙個關聯容器,它提供一對一 其中第乙個可以稱為關鍵字,每個關鍵字只能在map中出現一次,第二個可能稱為該關鍵字的值 的資料 處理能力,由於這個特性,它完成有可能在我們處理一對一資料的時候,在程式設計上提供快速通道。這裡說下map內部資料的組織,map內部自建一顆紅黑樹 一 種非嚴格意...