一 點睛
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.最後一步自己提交 ...