C map用法(帶例程)

2021-08-20 04:30:58 字數 1697 閱讀 1069

介紹:

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內部自建一顆紅黑樹 一 種非嚴格意...