6 #ifndef SWIFT_MISC_MAPBUILDER_H 
    7 #define SWIFT_MISC_MAPBUILDER_H 
   24     template <
typename K, 
typename V>
 
   29         template <
typename... Ts>
 
   32             m_list.
push_back(std::make_pair(std::forward<Ts>(keyAndValue)...));
 
   40         operator QMap<K, V>() const & { 
return convertToMap(sortAndDeduplicate(m_list)); }
 
   41         operator QMap<K, V>() && { 
return convertToMap(sortAndDeduplicate(std::move(m_list))); }
 
   42         operator QHash<K, V>() const & { 
return convertTo<QHash>(sortAndDeduplicate(m_list)); }
 
   43         operator QHash<K, V>() && { 
return convertTo<QHash>(sortAndDeduplicate(std::move(m_list))); }
 
   44         operator std::map<K, V>() const & { 
return convertTo<std::map>(sortAndDeduplicate(m_list)); }
 
   45         operator std::map<K, V>() && { 
return convertTo<std::map>(sortAndDeduplicate(std::move(m_list))); }
 
   53             std::sort(list.begin(), list.end(), [](
auto &&a, 
auto &&b) { return std::less<>()(a.first, b.first); });
 
   54             list.erase(std::unique(list.begin(), list.end(), [](
auto &&a, 
auto &&b) { return a.first == b.first; }),
 
   59         template <
template <
typename...> 
class C>
 
   60         static C<K, V> convertTo(
QList<std::pair<K, V>> &&list)
 
   62             return C<K, V>(std::make_move_iterator(list.begin()), std::make_move_iterator(list.end()));
 
   68             for (
auto &pair : 
makeRange(list).reverse())
 
   70                 map.insert(map.cbegin(), std::move(pair.first), std::move(pair.second));
 
Build a QMap more efficiently when calling insert() in a for loop.
bool isEmpty() const
True if no pairs have been inserted.
void insert(Ts &&...keyAndValue)
Add an key/value pair to the map. Runs in amortized constant time.
Free functions in swift::misc.
auto makeRange(I begin, I2 end) -> CRange< I >
Returns a CRange constructed from begin and end iterators of deduced types.
bool isEmpty() const const
void push_back(QList< T >::parameter_type value)
QFuture< void > map(Iterator begin, Iterator end, MapFunctor &&function)