關聯容器是stl容器的另一組成部分,關聯容器的底層是紅黑樹,容器會根據值進行自動調整排序。
map與set的底層資料結構決定了他們不會有重複的元素,set.count()函式返回的結果只能整數 0 或 1,1表示有這個元素,0表示沒有這個元素;
與其功能相似的還有函式find(),find()函式返回值是乙個迭代器,成功返回迭代器指向所查詢的元素,失敗返回迭代器指向end
templatevoid show(container& con)
std::cout << std::endl;
}int main()
; int arr2 = ;
int len1 = sizeof(arr1) / sizeof(arr1[0]);
int len2 = sizeof(arr2) / sizeof(arr2[0]);
std::setmyset(arr1, arr1 + len1); //插入arr1
show(myset);
myset.insert(10); // 插入10
show(myset);
myset.insert(arr2, arr2 + len2); // 插入arr2
show(myset);
myset.erase(1);//刪除1
show(myset);
函式的使用
std::set::iterator fit = std::find(myset.begin(), myset.end(), 10);
std::set::iterator fit1 = myset.find(23);//o(log2 n)
std::cout << *fit << std::endl;
std::cout << *fit1 << std::endl;
函式的使用
int count = myset.count(11); //統計11
std::cout << count << std::endl;
myset.erase(11); //刪除11後統計11
count = myset.count(11);
std::cout << count << std::endl;
return 0;
}
講完了set就輪到map了,map是乙個鍵值對,每個鍵都有乙個值與之相對應。
int main()
std::map::iterator fit = mymap.find(1);//基於key查詢
return 0;
}
關聯容器 set map
有序關聯容器 基於乙個序標準 預設是 進行查詢。這類容器用平衡二叉樹實現,通常是紅黑樹。無需關聯容器 基於乙個雜湊函式進行查詢。這類容器用雜湊表實現,採用溢位鍊錶策略。兩類容器都支援 map set 不帶值的map,或者說關鍵字就是值。初始化 map locations 基本操作 v c k v c...
關聯式容器 set,map的使用與辨別。
int array 9 set int s array,array sizeof array array int 用陣列對set進行初始化。for auto it s.begin it s.end it cout it cout endl for auto e s cout endl std set...
STL之關聯式容器set map
1.管理元素集合的stl容器大致分為兩類,序列式容器 有順序的集合 和關聯式容器 經過排序的集合 2.關聯式容器再管理資料的過程中會自動給元素排序。其優點在於可以隨時採用二分搜尋法,搜尋元素的效率極高。1.set是根據元素值進行排序的集合,所插入的元素在集合中唯一,不存在重複元素。1.include...