>>>c++stl容器學習總結之一:向量vector<<<
>>> c++stl容器學習總結之二:鍊錶list<<<
>>>c++stl容器學習總結之三:雙端佇列deque<<<
>>>c++stl容器學習總結之四:佇列queue<<<
>>>c++stl容器學習總結之五:優先佇列priority_queue<<<
>>>c++stl容器學習總結之六:棧stack<<<
>>>c++stl容器學習總結之七:集合set<<<
map是鍵-值對的集合,map中的所有元素都是pair,可以使用鍵作為下標來獲取乙個值。map中所有元素都會根據元素的值自動被排序,同時擁有實值value和鍵值key,pair的第一元素被視為鍵值,第二元素被視為實值,同時map不允許兩個元素有相同的鍵值。
mapmapstring; mapmapint;
mapmapstring; map< char ,string>mapchar;
mapmapchar; mapmapint;
給map容器新增元素可通過兩種方式實現:
通過insert成員函式實現。如:通過下標操作符獲取元素,然後給獲取的元素賦值。 map物件的訪問可通過下標和迭代器兩種方式實現:
map的下標是鍵,返回的是特定鍵所關聯的值。
使用迭代器訪問,iter->first指向元素的鍵,iter->second指向鍵對應的值。 使用下標訪問map容器與使用下標訪問vector的行為截然不同:用下標訪問map中不存在的元素將導致在map容器中新增乙個新的元素,這個元素的鍵即為該下標值,鍵所對應的值為空。
mapmaplive;
1.maplive.insert(pair(102,"aclive"));
2.maplive.insert(map::value_type(321,"hai"));
3, maplive[112]="april"; /map中最簡單最常用的插入新增!
find()函式返回乙個迭代器指向鍵值(就是鍵,值在這裡叫做實值)為key的元素,如果沒找到就返回指向map尾部的迭代器。
map::iterator l_it;;
l_it=maplive.find(112);
if(l_it==maplive.end())
cout<
map::iterator l_it;;
l_it=maplive.find(112);
if(l_it==maplive.end())
cout<
for example:
#include #include using namespace std;
int main( )
執行結果
map中的元素是自動按key公升序排序,所以不能對map用sort函式:
for example:
#include #include using namespace std;
int main( )
{ map m1;
map ::iterator m1_iter;
m1.insert ( pair ( 1, 20 ) );
m1.insert ( pair ( 4, 40 ) );
m1.insert ( pair ( 3, 60 ) );
m1.insert ( pair ( 2, 50 ) );
m1.insert ( pair ( 6, 40 ) );
m1.insert ( pair ( 7, 30 ) );
cout << "the original map m1 is:"
c++ maps是一種關聯式容器,包含「關鍵字/值」對
begin() 返回指向map頭部的迭代器
clear() 刪除所有元素
count() 返回指定元素出現的次數
empty() 如果map為空則返回true
end() 返回指向map末尾的迭代器
equal_range() 返回特殊條目的迭代器對
erase() 刪除乙個元素
find() 查詢乙個元素
get_allocator() 返回map的配置器
insert() 插入元素
key_comp() 返回比較元素key的函式
lower_bound() 返回鍵值》=給定元素的第乙個位置
max_size() 返回可以容納的最大元素個數
rbegin() 返回乙個指向map尾部的逆向迭代器
rend() 返回乙個指向map頭部的逆向迭代器
size() 返回map中元素的個數
swap() 交換兩個map
upper_bound() 返回鍵值》給定元素的第乙個位置
value_comp() 返回比較元素value的函式
對於map容器,使用其下標行為一次訪問一系列的相同型別的元素,則可以將這個過程理解為構造了這些元素的乙個雜湊表,以統計輸入單詞的出現次數為例:
mapword_count;
string word;
while(cin>>word)
++word_count[word]; // 相當於生成了乙個雜湊表word_count
簡單的說,就是鍵(本例中為string)會被作為陣列的下標,值(本例中為int)則為該下標所對應的陣列元素的值 C STL常用容器總結之八 對映map
map是鍵 值對的集合,map中的所有元素都是pair,可以使用鍵作為下標來獲取乙個值。map中所有元素都會根據元素的值自動被排序,同時擁有實值value和鍵值key,pair的第一元素被視為鍵值,第二元素被視為實值,同時map不允許兩個元素有相同的鍵值。要使用map物件,必須包含map的標頭檔案 ...
C STL通用容器 之 對映
常用的對映類是 map,multimap 各個容器中,僅儲存著一樣東西,但是在對映中將會得到兩樣東西 關鍵字以及作為對關鍵字進行查詢得到的結果值,即一對值。map單對映中key與value是一對一的關係,multimap多對映中key與value可以是一對多的關係。1 建構函式 map constp...
C STL容器總結篇之map
map是stl的乙個容器,和set一樣,map也是一種關聯式容器。它提供一對一 其中第乙個可以稱為關鍵字,每個關鍵字只能在map 現一次,第二個可能稱為該關鍵字的值 的資料處理能力,由於這個特性,有助於我們處理一對一資料。這裡說下map內部資料的組織,map內部是自建一顆紅黑樹 一種非嚴格意義上的平...