前言:這是我的一道作業題,為了減少**量,我使用map進行資料儲存,因為課堂進度並未涉及stl,所以我使用map就顯得有些取巧*/group的
private
成員顯然需要乙個容器儲存每乙個加進來的person,且每乙個person,都需要乙個容器儲存他的friends,起初我是將這個容器放在了person的類定義裡,但是測試時發現這樣不同group
型別物件中的person的friends是一樣的。所以需要把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 分別指...