在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++!