[Interest] initialising a dictionary-type container instance with a static table?

Shawn Rutledge Shawn.Rutledge at qt.io
Mon Jan 2 13:36:10 CET 2017


> On 2 Jan 2017, at 13:02, René J.V. Bertin <rjvbertin at gmail.com> wrote:
> 
> Hi,
> 
> I must be overlooking or even forgetting something: is there a way to initialise a QMap or QHash instance with a static table, say when you're creating a fast lookup dictionary mapping enums or preprocessor tokens to a QString?
> 
> That's information known a compile time so I was expecting to be able to avoid adding each mapping explicitly with a sequence of
> 
> map[token] = "token";
> 
> statements. If that's indeed possible, the documentation doesn't really showcase it.

It has operator<< and operator>> so I guess you could load it from a file.

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.  There’s undoubtedly some other library which can do that.  I googled and found stuff like https://news.ycombinator.com/item?id=10745194 and http://stevehanov.ca/blog/index.php?id=119 which have more links to things like cmph and gperf.

But for tokenizing, maybe just use lex/flex?



More information about the Interest mailing list