gpt4 book ai didi

c++ - 访问多映射 C++ 中的元素

转载 作者:太空宇宙 更新时间:2023-11-04 13:38:28 25 4
gpt4 key购买 nike

我有一个 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 文件的类型。如何访问 multimap 的元素?当 multimap 的键值是一个类时,我不知道这是如何工作的。

最佳答案

正如@NathanOliver 指出的那样,multimap 可能不是建模数据的最佳结构。但是,如果您决心走这条路,请使用 equal_range成员函数查找具有给定键的所有值。查看example了解更多详情。

关于c++ - 访问多映射 C++ 中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28724348/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com