C語言 map函式的基礎用法詳解

2022-09-20 18:30:09 字數 1187 閱讀 1387

目錄

有n個學生的姓名name和學號id,要求給你乙個學生的name求查詢他的id。

簡單做法是定義string name [ n ]和int id程式設計客棧[ n ]儲存資訊,然後在name [ ] 中查詢這個學生,找到後輸出他的id。但是這樣的缺點是需要查詢所有的name [ n ],時間複雜度是o( n ),效率低下。

利用 stl 中 map容器 可以快速實現查詢,複雜度是o( log 2 n )。

map是關聯容器,它實現從鍵(key程式設計客棧)到值(value)得的對映。map效率高的原因是它利用平衡二叉搜尋樹來儲存和訪問。

一般的陣列也是用對映方法實現的。

int a[ 100 ],是定義了從int型到int型的對映,比如 a[ 4 ]=36就分別是將 4 對映到 36

double b[ 100 ],是定義了從int型到int型的對映,比如 b[ 5 ]=0.009 就分別是將 5 對映到 0.009

( 1 ) 定義:例如map 代表從字串對映到數字,還含有多種對映。(注意,字串到整型的對映,必須是string而不是char)

( 2 ) 賦值:例如a[ 「tom」 ]=15,這裡把 「tom」 當成普通陣列下標來使用。

( 3 ) 查詢:可以直接使用a[ 「tom」 ]表示,不必要搜尋所有的值。

注意map是c++的函式,必須使用c++標頭檔案。例題 poj 2153

#include

#include

#include//map函式標頭檔案

using namespace std;

map x;//定義從string對映到int

char s[10010][50];

char b[50],c[50]程式設計客棧="li ming";

int main()

scanf("%d",&m);

while(m--)

for(i=1;i<=n;i++)

if(strcmp(c,s[i])==0) sum=x[s[i]];//重新整理"li ming"的分數

for(i=1;i<=n;i++)

if(x[s[i]]>sum) sort++;//求"li ming"的名次

printf("%d\n",sort);

程式設計客棧}

return 0;

}本文標題: c語言 map函式的基礎用法詳解

本文位址:

c 中的map用法詳解

1.map最基本的建構函式 mapmapstring mapmapint mapmapstring map char string mapchar mapmapchar mapmapint 2.map新增資料 mapmaplive 1.maplive.insert pair 102,aclive 2...

C語言return的用法詳解,C語言函式返回值詳解

函式的返回值是指函式被呼叫之後,執行函式體中的 所得到的結果,這個結果通過return語句返回。return 語句的一般形式為 return 表示式 或者 return 表示式 有沒有 都是正確的,為了簡明,一般也不寫 例如 return max return a b return 100 200 ...

MAP函式的用法

你剛從滑鐵盧搬到乙個大城市。這裡的人講一種難以理解的外語方言。幸運的是,你有一本字典來幫助你理解它們。input輸入內容包括多達100000個字典條目,後面是乙個空行,後面是一條多達100000個單詞的訊息。每個字典條目都是一行,包含乙個英語單詞,後跟乙個空格和乙個外語單詞。字典裡沒有外文詞出現過一...