Thiago Macieira wrote:

Oops, I didn't see all replies before answering to Konstantin..

> The closest thing you have is the std::initializer_list constructor:
> 
> static const QHash<Enum, QString> data = {
> { Value1, "Value1" },
> { Value2, "Value2" }
> };

That's exactly what I was thinking about, and expecting to see among the 
examples in the QHash or QMap documentation.

> Note that all of this is constructed at *load* time, not at compile time and
> not on first use.

so it doesn't work like a classical static variable which is initialised only 
once, presuming you meant to say "not on first use *only*"?
Not really an issue if the QHash or QMap instance can be a class member 
variable 
and initialised in the ctor.

> It’s an interesting point though, if you have a fixed set of data then you 
could use a perfect hash and a perfect number of buckets.

You already have a perfect hash in the case of a set of unique keys, like an 
enum, no? I've never used gperf, wouldn't that be more appropriate for (really) 
large key/value sets?

R.

_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to