標頭檔案
#include
申明
mapmymap;
插入
向map中插入提供了三個過載版本
iterator insert( iterator pos, const pair&val );
// 插入val到pos的後面,然後返回乙個指向這個元素的迭代器。
void insert( input_iterator start, input_iterator end );
// 插入start到end的元素到map中。
pairinsert( const pair&val );
// 只有在val不存在時插入val。返回值是乙個指向被插入元素的迭代器和乙個描述是否插入的bool值。
大多數情況下使用的是第三個過載的版本。即插入乙個pair,pair包含在標頭檔案#include
中。因為map中對操作符進行了過載,也可以使用進行操作(不推薦使用,在使用時極容易出錯)。值得注意的是,如果想要用結構體或類作為map的key,該結構體或者類必須過載操作符<
my_map["a"] = 1;
my_map.insert(map
::value_type("b",2));
my_map.insert(pair("c",3));
my_map.insert(make_pair("d",4));
查詢和修改資料
查詢資料時,慎用操作符,具體原因不詳,表示很容易出錯。
// 使用迭代器
map::iterator it;
it = map.find(key); // 指向目標的pair的迭代器
it->second = value; // it->first為鍵,it->second為值,鍵不能被修改
刪除// 通過key刪除
my_map.erase(key);
// 通過迭代器刪除
my_map.erase(it);
迭代資料for (it = my_map.begin(); it != my_map.end(); it++) {}
最後附上測試**
#include
#include
#include
#include
using
namespace
std;
struct key_type
// 用結構器作為map的key,必須過載操作符<
bool
operator
< (const key_type &k) const
};struct value_type
};int main()
// 刪除,可以通過key刪除,也可以通過迭代器刪除
cout
<< my_map.size() << endl;
my_map.erase(key1);
cout
<< my_map.size() << endl;
my_map.erase(it2);
cout
<< my_map.size() << endl;
return
0;}
關於C map的簡單使用
關於c map的簡單使用 c 的map屬於c stl的成員,但不知道為什麼,很多的c 程式猿們,對於c 的map都不太使用,而作為小菜菜的我本著對知識的虔誠,對這個知識點進行一些總結,以下是 和注釋 簡單的 薄操作例項 include include include g using namespac...
c map的使用方法
map是c 的乙個標準容器,它提供了很好一對一的關係,在一些程式中建立乙個map可以起到事半功倍的效果,總結了一些map基本簡單實用的操作!1.map建構函式 mapmapstring mapmapint mapmapstring map char string mapchar mapmapchar...
VC 中CMAP的使用
本文出處 對映錶類 cmap 是mfc集合類中的乙個模板類,也稱作為 字典 就像一種只有兩列的 一列是關鍵字,一列是資料項,它們是一一對應的。關鍵字是唯一的,給出乙個關鍵字,對映錶類會很快找到對應的資料項。對映表的查詢是以雜湊表的方式進行的,因此在對映表中查詢數值項的速度很快。對映類最適用於需要根據...