QPair can not be a key in my case.
Every Data structure is identified by scope ( first QString ) and name (second QString ) and now when i want set some Data i have function:
class Container
{
public:
void setData(const Data &data);
private:
QHash<QString, QHash<QString, Data>> d;
};
void Container::setData(const Data &data)
{
if( d.contains(scope) ) {
if( d.value(scope).contains(name) )
d[scope][name] = data;
else
d[scope].insert(name, data);
}
else {
d.insert(scope, QHash<QString, Data>{{name, data}});
}
}
class Container
{
public:
void setData(const Data &data);
private:
QHash<QString, QHash<QString, Data>> d;
};
void Container::setData(const Data &data)
{
const QString scope = data.scope;
const QString name = data.name;
if( d.contains(scope) ) {
if( d.value(scope).contains(name) )
d[scope][name] = data;
else
d[scope].insert(name, data);
}
else {
d.insert(scope, QHash<QString, Data>{{name, data}});
}
}
To copy to clipboard, switch view to plain text mode
and now I want allow to use this class in range for loop like that
Container container;
for(const Data &data : container )
qDebug()<< data.scope << data.name << data.value;
Container container;
for(const Data &data : container )
qDebug()<< data.scope << data.name << data.value;
To copy to clipboard, switch view to plain text mode
but if I understand you correctly it will be very difficult.
Bookmarks