[英]Accessing elements in a multimap c++
我有一個CFile類:
class CFile{
private:
string filename;
unsigned int filesize;
public:
CFile(){
filename="";
filesize=0;
}
CFile(string name,unsigned int size){
filename=name;
filesize=size;
}
string getFileName(){
return filename;
}
int getSize(){
return filesize;
}
void ChangeSize(unsigned int size1){
filesize=size1;
}
bool operator ==(CFile a){
return(a.getFileName().compare(getFileName()))&&(a.getSize()==getSize())?true:false;
}
void operator =(CFile a){
filename=a.getFileName();
filesize=a.getSize();
}
istream &operator>>(istream &in){
in>>filename>>filesize;
return in;
}
ostream &operator<<(ostream &out){
return out<<filename<<filesize;
}
bool nameCompare(CFile a){
return (lexicographical_compare(filename.begin(),filename.end(),a.filename.begin(),a.filename.end()))?1:0;
}
static bool greather(const CFile& obj1,const CFile& obj2){
if (obj1.filesize>obj2.filesize) return true;
else return false;
}
};
並且我有一個類CDirectory:
class CDirectory{
private:
string dirname;
enum FileType {Archive,Hidden,Readonly,System};
multimap<CFile,FileType> dirmap;
第一個類CFile用於文件的大小和名稱,第二個類CDirectory用於文件的目錄名稱和類型,第二個類中的multimap具有鍵值,類CFile和映射值的類型文件FileType。如何訪問多圖的元素?當多圖的鍵值是一個類時,我不知道它是如何工作的。
正如@NathanOliver指出的那樣, multimap
可能不是建模數據的最佳結構。 但是,如果您確定equal_range
,請使用equal_range
成員函數查找具有給定鍵的所有值。 有關更多詳細信息,請參見示例 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.