[Development] QList

André Somers andre at familiesomers.nl
Wed Mar 22 06:49:42 CET 2017



Op 21/03/2017 om 16:55 schreef Thiago Macieira:
> Em terça-feira, 21 de março de 2017, às 05:22:31 PDT, André Somers escreveu:
>> Op 20/03/2017 om 23:43 schreef Kevin Kofler:
>>> Marc Mutz wrote:
>>>> https://github.com/KDE/libkleo/blob/2fe48b77ba61fada80eaace8cb71dd0fd1326
>>>> 5ae/src/kleo/stl_util.h> 
>>> Thanks for proving my point that the STL APIs require tons of copy&paste
>>> boilerplate in every project.
>> That's not just your point, it's Stephanovs point as well. The STL is a
>> starting point, a good, well-tested set of basic building blocks. Nobody
>> claimed it contains any and all containers or algoritms you'd ever need.
>> In fact, in its first form it contained more, but large parts of it got
>> backed out before standardization. Surely you don't expect Qt to supply
>> every container type and every algorithm possible?
> Not all, but a good set of algorithms that are in common use. Getting all keys 
> and values is common, even if sometimes you leading to bad code.
>
Don't we have keyBegin and keyEnd for getting the keys? (No direct
equivalent for values, it seems...):

QVector<MyKeyType> keys;
keys.reserve(theHash.size());
std::copy(theHash.keyBegin(), theHash.keyEnd(), std::back_inserter(keys));

Sure, it is longer than
auto keys = theHash.keys();

but it does not bind you to using a container selected by Qt to return
the keys in. If you need them in a vector, you can put them in a vector.
If you want them in a set, you can put them in a set.

André





More information about the Development mailing list