利用STL之map取巧做題過程

2021-07-30 13:19:26 字數 2229 閱讀 1656

前言:這是我的一道作業題,為了減少**量,我使用map進行資料儲存,因為課堂進度並未涉及stl,所以我使用map就顯得有些取巧

*/groupprivate成員顯然需要乙個容器儲存每乙個加進來的person,且每乙個person,都需要乙個容器儲存他的friends,起初我是將這個容器放在了person的類定義裡,但是測試時發現這樣不同group型別物件中的personfriends是一樣的。所以需要把friends也放進group中。

至此問題就簡化成,需要乙個容器儲存物件,而每個物件又有自己的儲存其他物件的容器,於是我想到了std::map,將person::id作為map::key_type,並使用vector儲存每個friends的id。通過std::map自帶的介面以及中的泛型演算法,題目便簡化了很多。

#ifndef world_h

#define world_h

#include

#include

#include

#include

using

namespace

std;

static

int num = 0;

struct person

};class group

void displaygroup();

bool addmember(person &p);

bool deletemember(person &p);

bool makefriend(person &p1, person &p2);

bool breakrelation(person &p1, person &p2);

};bool group::addmember(person &p) }}

return

true;

} return

false;

}bool group::deletemember(person &p)

return

false;

}bool group::makefriend(person &p1, person &p2)

return

false;

}bool group::breakrelation(person &p1, person &p2)

return

false;

}void group::displaygroup()

cout

<< endl;

}}#endif

當然,**可能還能進一步簡化, 此處不作深入。

reference:www.cplusplus.com

日常學習 STL之map

對map最初的印象,源於王建德老師在山東noip夏令營上那銷魂的一句 map,i,j 音 嘜頗,挨,傑 ruka上對map並沒有講很多,ty菌說map主要用來寫雜湊 雖然她曾用它寫過鄰接矩陣 迴圈巢狀map intorz 而李晨和里奧甚至表示基本不用map。但是既然有這一項奇妙的東西,想必是有用的,...

STL之map實現(四)

首先,實現是否為空,比如你在學校運動會,想知道跑多少圈,可以引入計數。protected int dsize 計數 統計數對個數 pairnode firstnode 在建構函式初始化成員 sortmap firstnode null dsize 0 判斷是否為空 bool empty const ...

STL關聯容器之map

map和set一樣,也是一種關聯容器,內部也是使用紅黑樹作為底層的實現結構。但是不同的是,map的鍵值和實值可以是不一樣的。map與set的查詢操作本質上是一樣的,沒有特殊的地方。map使用鍵值排列元素的位置,因而也不允許插入相同鍵值的元素,插入演算法返回pair iterator,bool 分別指...