App下載

C++ Map:使用實例解析STL關聯(lián)式容器

蘿莉教主 2023-06-12 11:32:37 瀏覽數 (1272)
反饋

在C++中,STL庫提供了許多容器用于數據的存儲和管理。其中,關聯(lián)式容器是一類常見的容器,主要用于存儲鍵值對的形式,例如map、multimap等。本文將以map為例,介紹其基本概念和使用方法。

Map是一種關聯(lián)式容器,將一組鍵值對存儲為有序的二元組。在map中,每個元素都由一個鍵和一個值組成,且鍵是唯一的。因此,map可以被看作是一種集合,其中每個元素具有唯一的鍵值,可以通過鍵值來查找元素。

下面我們來看一個具體的例子,假設有一個學生類,包含姓名和分數兩個屬性。我們要將不同學生的姓名和分數存儲到一個map中,并按照分數從高到低的順序進行排序。代碼如下:

#include <iostream>
#include <map> using namespace std; class Student { public: string name; int score; Student(string n, int s):name(n),score(s){} }; int main() { map<int, Student, greater<int>> stu_map; // 創(chuàng)建一個map對象 // 插入學生信息 stu_map.insert(make_pair(90, Student("Tom", 90))); stu_map.insert(make_pair(80, Student("Jack", 80))); stu_map.insert(make_pair(70, Student("Lucy", 70))); stu_map.insert(make_pair(85, Student("Lily", 85))); // 遍歷輸出學生信息 for(auto iter = stu_map.begin(); iter != stu_map.end(); iter++) { cout << "name: " << iter->second.name << ", score: " << iter->first << endl; } return 0; }

在上述代碼中,我們首先定義了一個Student類,然后創(chuàng)建了一個map對象?stu_map?。這里我們使用?greater<int>?作為比較函數,使得map按照分數從高到低的順序排序。

接著,我們向?stu_map?中插入了四個學生的信息,每個元素都由一個鍵值和一個Student對象組成。最后,使用迭代器遍歷輸出?stu_map?中所有學生的信息。

運行以上代碼,我們可以得到以下輸出結果:

name: Tom, score: 90
name: Lily, score: 85 name: Jack, score: 80 name: Lucy, score: 70

從輸出結果中可以看出,map按照分數從高到低的順序進行了排序,并且每個學生的姓名和分數都正確地被輸出了。

綜上所述,map是一種非常實用的關聯(lián)式容器,可以用于存儲和管理數據。通過本文的例子,我們可以初步了解map的基本使用方法和特點,希望能對大家有所幫助。

如果您還是C++初學者,可以先來試試 C++入門課程 ,零基礎也能學習C++!


C++

0 人點贊