C Map的簡單使用

2021-08-01 08:15:33 字數 1717 閱讀 9669

標頭檔案

#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集合類中的乙個模板類,也稱作為 字典 就像一種只有兩列的 一列是關鍵字,一列是資料項,它們是一一對應的。關鍵字是唯一的,給出乙個關鍵字,對映錶類會很快找到對應的資料項。對映表的查詢是以雜湊表的方式進行的,因此在對映表中查詢數值項的速度很快。對映類最適用於需要根據...