C 的map介紹以及插入操作

2021-09-20 21:11:31 字數 2548 閱讀 5705

一 點睛

map是stl的乙個關聯容器,它提供一對一(其中第乙個稱為關鍵字,每個關鍵字只能在map**現一次,第二個稱為該關鍵字的值)的資料處理能力。map內部自建一顆紅黑樹(一 種非嚴格意義上的平衡二叉樹),這顆樹具有對資料自動排序的功能,所以在map內部所有的資料都是有序的。

1 map簡介

map是一類關聯式容器。它的特點是增加和刪除節點對迭代器的影響很小,除了那個操作節點,對其他的節點都沒有什麼影響。

對於迭代器來說,可以修改值,而不能修改key。

2 map的功能

自動建立key - value的對應。key 和 value可以是任意你需要的型別。

根據key值快速查詢記錄,查詢的複雜度基本是log(n),如果有1000個記錄,最多查詢10次,1,000,000個記錄,最多查詢20次。

快速插入key -value 記錄。

快速刪除記錄

根據key修改value記錄。

遍歷所有記錄。

3 使用map

使用map得包含map類所在的標頭檔案

#include

map物件是模板類

template,

class allocator = allocator>>

class map;

其中:

4 map的插入有3種方式:用insert函式插入pair資料,用insert函式插入value_type資料和用陣列方式插入資料。

二 用insert函式插入pair資料

1 **

#include #include #include using namespace std;

int main()

pair(const t1&a,const t2&b) :first(a),second(b) {}

};

該例定義了乙個key為int型別,value為string型別的map,用insert插入pair,在insert的引數中將(1,"student_one")轉換為pair資料再進行插入。

三 用insert函式插入value_type資料

1 **

#include #include #include using namespace std;

int main()

{ mapmapstudent;

mapstudent.insert(map::value_type (1,"student_one"));

mapstudent.insert(map::value_type (2,"student_two"));

mapstudent.insert(map::value_type (3,"student_three"));

map::iterator iter;

for(iter = mapstudent.begin(); iter != mapstudent.end(); iter++){

cout

[root@localhost charpter03]# g++ 0319.cpp -o 0319

[root@localhost charpter03]# ./0319

1 student_one

2 student_two

3 student_three

3 說明

宣告了乙個key為int型別,value為string型別的map,用insert函式插入value_type資料,插入前,需要將(1,"student_one")轉換為map::value_type資料再插入。

四 map中用陣列方式插入資料

1 **

#include #include #include using namespace std;

int main(){

mapmapstudent;

mapstudent[1] = "student_one";

mapstudent[2] = "student_two";

mapstudent[3] = "student_three";

map::iterator iter;

for(iter = mapstudent.begin(); iter != mapstudent.end(); iter++){

cout

[root@localhost charpter03]# g++ 0320.cpp -o 0320

[root@localhost charpter03]# ./0320

1 student_one

2 student_two

3 student_three

3 說明

展示了用陣列方式在map中插入資料,和陣列訪問一樣,有下標、直接賦值。

map容器以及下標操作和insert操作

map中所有元素都是pair pair中的第乙個元素為key 鍵值 起到索引的作用,第二個元素為value 實值 所有元素都會根據原色的鍵值自動排序 本質 map屬於關聯式容器,優點 可以根據key值快速找到value值 和其他容器一樣 1.構造和賦值 2.大小和交換 size empty swap...

DataSet的介紹以及常用操作

dataframe與dataset互相轉換 dataset是分布式的資料集合,dataset提供了強型別支援,也是在rdd的每行資料加了型別約束。dataset是在spark1.6中新增的新的介面。它集中了rdd的優點 強型別和可以用強大lambda函式 以及使用了spark sql優化的執行引擎。...

CLOB欄位的插入以及更新操作

1.插入方法,首先需要先插入乙個空的clob物件,之後查詢出該條物件,並進行更新操作 view plaincopy to clipboardprint?01.override 02.public void add object obj throws daoexception 28.最後一步自己提交 ...