C++中map容器的使用說明
C++中map容器提供一個鍵值對容器,map與multimap差別僅僅在於multiple允許一個鍵對應多個值.
一.map的說明
1.頭文件
#include
2.定義方法
(1)map m;
(2)typedef map M;
M m;
3.插入數據
(1)m['a'] = 1
(2)m.insert(map::value_type(b,2));
(3)m.insert(pair(c,3));
(4)m.insert(make_pair(d,4));
4.查找數據和修改數據
(1)int i = m[a];
m[a] = i;
(2)m::iterator m_iter;
m.find(b);
int j = m_iter->second;
m_iter->second = j;
!!!注意!!! 鍵本身是不能被修改的,除非刪除.
5.刪除數據
(1)m.erase(m_iter);
(2)m.erase(c);
!!!注意!!! 第一種情況在迭代期間是不能被刪除的
6 迭代數據
for (m_iter=m.begin(); m_iter!=m.end(); ++m_iter)
{
}
7 其它方法
m.size() 返回元素數目
m.empty() 判斷是否為空
m.clear() 清空所有元素
可以直接進行賦值和比較:=, >, >=, <, <=, != 等等
二map的舉例
要求: 將mymap中itemstruct的a大於100的項刪除
struct itemstruct
{
int a;
char b[20];
};
map mymap;
代碼1:
#include
#include
#include
代碼2:
#include
代碼3:
for(map::iterator i = mymap.begin(); i != mymap.end();)
{
if(i->second.a > 100)
i = mymap.erase(i);
else
++i;
}