180 requires (IEqualsComparer<equal_to<KEY_TYPE>, KEY_TYPE>);
181 template <IEqualsComparer<KEY_TYPE> KEY_EQUALS_COMPARER>
182 explicit Association (KEY_EQUALS_COMPARER&& keyEqualsComparer);
186 requires (IEqualsComparer<equal_to<KEY_TYPE>, KEY_TYPE>);
187 template <IEqualsComparer<KEY_TYPE> KEY_EQUALS_COMPARER>
188 Association (KEY_EQUALS_COMPARER&& keyEqualsComparer, const initializer_list<
KeyValuePair<KEY_TYPE, MAPPED_VALUE_TYPE>>& src);
189 template <IIterableOfTo<
KeyValuePair<KEY_TYPE, MAPPED_VALUE_TYPE>> ITERABLE_OF_ADDABLE>
191 requires (IEqualsComparer<equal_to<KEY_TYPE>, KEY_TYPE> and
192 not derived_from<remove_cvref_t<ITERABLE_OF_ADDABLE>,
Association<KEY_TYPE, MAPPED_VALUE_TYPE>>)
193#if qCompilerAndStdLib_RequiresNotMatchInlineOutOfLineForTemplateClassBeingDefined_Buggy
196 AddAll (forward<ITERABLE_OF_ADDABLE> (src));
197 _AssertRepValidType ();
201 template <IEqualsComparer<KEY_TYPE> KEY_EQUALS_COMPARER, IIterableOfTo<KeyValuePair<KEY_TYPE, MAPPED_VALUE_TYPE>> ITERABLE_OF_ADDABLE>
202 Association (KEY_EQUALS_COMPARER&& keyEqualsComparer, ITERABLE_OF_ADDABLE&& src);
203 template <IInputIterator<KeyValuePair<KEY_TYPE, MAPPED_VALUE_TYPE>> ITERATOR_OF_ADDABLE, sentinel_for<remove_cvref_t<ITERATOR_OF_ADDABLE>> ITERATOR_OF_ADDABLE2>
204 Association (ITERATOR_OF_ADDABLE&& start, ITERATOR_OF_ADDABLE2&& end)
205 requires (IEqualsComparer<equal_to<KEY_TYPE>, KEY_TYPE>);
206 template <IEqualsComparer<KEY_TYPE> KEY_EQUALS_COMPARER, IInputIterator<KeyValuePair<KEY_TYPE, MAPPED_VALUE_TYPE>> ITERATOR_OF_ADDABLE,
207 sentinel_for<remove_cvref_t<ITERATOR_OF_ADDABLE>> ITERATOR_OF_ADDABLE2>
208 Association (KEY_EQUALS_COMPARER&& keyEqualsComparer, ITERATOR_OF_ADDABLE&& start, ITERATOR_OF_ADDABLE2&& end);
211 explicit Association (shared_ptr<_IRep>&& rep)
noexcept;
212 explicit Association (
const shared_ptr<_IRep>& rep)
noexcept;
217 nonvirtual Association& operator= (Association&&) noexcept = default;
218 nonvirtual Association& operator= (const Association&) = default;
223 nonvirtual KeyEqualsCompareFunctionType GetKeyEqualsComparer () const;
254 nonvirtual Iterable<key_type> Keys () const;
287 nonvirtual Iterable<mapped_type> MappedValues () const;
293 nonvirtual Traversal::Iterable<mapped_type> Lookup (ArgByValueType<key_type> key) const;
301 nonvirtual optional<mapped_type> LookupOne (ArgByValueType<key_type> key) const;
309 template <typename THROW_IF_MISSING>
310 nonvirtual
mapped_type LookupOneChecked (ArgByValueType<
key_type> key, const THROW_IF_MISSING& throwIfMissing) const;
334 nonvirtual
bool ContainsKey (ArgByValueType<key_type> key)
const;
340 nonvirtual
size_t OccurrencesOf (ArgByValueType<key_type> item)
const;
348 template <Common::IEqualsComparer<MAPPED_VALUE_TYPE> VALUE_EQUALS_COMPARER = equal_to<MAPPED_VALUE_TYPE>>
349 nonvirtual
bool ContainsMappedValue (ArgByValueType<mapped_type> v,
const VALUE_EQUALS_COMPARER& valueEqualsComparer = {})
const;
357 nonvirtual
void Add (ArgByValueType<key_type> key, ArgByValueType<mapped_type> newElt);
358 nonvirtual
void Add (ArgByValueType<value_type> p);
370 template <IIterableOfTo<KeyValuePair<KEY_TYPE, MAPPED_VALUE_TYPE>> ITERABLE_OF_ADDABLE>
371 nonvirtual
void AddAll (ITERABLE_OF_ADDABLE&& items);
372 template <IInputIterator<KeyValuePair<KEY_TYPE, MAPPED_VALUE_TYPE>> ITERATOR_OF_ADDABLE, sentinel_for<remove_cvref_t<ITERATOR_OF_ADDABLE>> ITERATOR_OF_ADDABLE2>
373 nonvirtual
void AddAll (ITERATOR_OF_ADDABLE&& start, ITERATOR_OF_ADDABLE2&& end);
385 nonvirtual
void Remove (ArgByValueType<key_type> key);
394 nonvirtual
bool RemoveIf (ArgByValueType<key_type> key);
407 nonvirtual
void RemoveAll ();
408 template <
typename ITERABLE_OF_KEY_OR_ADDABLE>
409 nonvirtual
size_t RemoveAll (
const ITERABLE_OF_KEY_OR_ADDABLE& items);
410 template <
typename ITERATOR_OF_KEY_OR_ADDABLE>
411 nonvirtual
size_t RemoveAll (ITERATOR_OF_KEY_OR_ADDABLE start, ITERATOR_OF_KEY_OR_ADDABLE end);
412 template <predicate<KeyValuePair<KEY_TYPE, MAPPED_VALUE_TYPE>> PREDICATE>
413 nonvirtual
size_t RemoveAll (PREDICATE&& p);
449 template <IIterableOfTo<KEY_TYPE> ITERABLE_OF_KEY_TYPE>
450 nonvirtual
void RetainAll (
const ITERABLE_OF_KEY_TYPE& items);
456 template <
typename RESULT_CONTAINER = Association<KEY_TYPE, MAPPED_VALUE_TYPE>, invocable<KeyValuePair<KEY_TYPE, MAPPED_VALUE_TYPE>> ELEMENT_MAPPER>
457 nonvirtual RESULT_CONTAINER Map (ELEMENT_MAPPER&& elementMapper)
const
458 requires (convertible_to<invoke_result_t<ELEMENT_MAPPER, KeyValuePair<KEY_TYPE, MAPPED_VALUE_TYPE>>,
typename RESULT_CONTAINER::value_type> or
459 convertible_to<invoke_result_t<ELEMENT_MAPPER, KeyValuePair<KEY_TYPE, MAPPED_VALUE_TYPE>>, optional<typename RESULT_CONTAINER::value_type>>)
477 template <derived_from<Iterable<KeyValuePair<KEY_TYPE, MAPPED_VALUE_TYPE>>> RESULT_CONTAINER = Association<KEY_TYPE, MAPPED_VALUE_TYPE>,
typename INCLUDE_PREDICATE>
478 nonvirtual RESULT_CONTAINER
Where (INCLUDE_PREDICATE&& includeIfTrue)
const
479 requires (predicate<INCLUDE_PREDICATE, KEY_TYPE> or predicate<INCLUDE_PREDICATE, KeyValuePair<KEY_TYPE, MAPPED_VALUE_TYPE>>);
498 template <
typename CONTAINER_OF_KEYS>
514 template <
typename CONTAINER_OF_Key_T>
515 nonvirtual CONTAINER_OF_Key_T
As ()
const;
530 nonvirtual tuple<_IRep*, Iterator<value_type>> _GetWritableRepAndPatchAssociatedIterator (
const Iterator<value_type>& i);
533 template <qCompilerAndStdLib_Constra
intDiffersInTemplateRedeclaration_BWA (Common::IEqualsComparer<MAPPED_VALUE_TYPE>) VALUE_EQUALS_COMPARER = equal_to<MAPPED_VALUE_TYPE>>
543 nonvirtual
bool operator== (
const Association& rhs)
const
544 requires (equality_comparable<MAPPED_VALUE_TYPE>);
552 nonvirtual
void Accumulate (
553 ArgByValueType<key_type> key, ArgByValueType<mapped_type> newValue,
554 const function<
mapped_type (ArgByValueType<mapped_type>, ArgByValueType<mapped_type>)>& f =
555 [] (ArgByValueType<mapped_type> l, ArgByValueType<mapped_type> r) ->
mapped_type {
return l + r; },
556 mapped_type initialValue = {});
562 nonvirtual
void erase (ArgByValueType<key_type> key);
563 nonvirtual Iterator<value_type> erase (
const Iterator<value_type>& i);
569 nonvirtual
void clear ();
574 template <IIterableOfTo<KeyValuePair<KEY_TYPE, MAPPED_VALUE_TYPE>> ITERABLE_OF_ADDABLE>
575 nonvirtual Association operator+ (
const ITERABLE_OF_ADDABLE& items)
const;
580 template <IIterableOfTo<KeyValuePair<KEY_TYPE, MAPPED_VALUE_TYPE>> ITERABLE_OF_ADDABLE>
581 nonvirtual Association& operator+= (
const ITERABLE_OF_ADDABLE& items);
586 template <
typename ITERABLE_OF_KEY_OR_ADDABLE>
587 nonvirtual Association& operator-= (
const ITERABLE_OF_KEY_OR_ADDABLE& items);
592 template <
typename T2>
593 using _SafeReadRepAccessor =
typename inherited::template _SafeReadRepAccessor<T2>;
598 template <
typename T2>
599 using _SafeReadWriteRepAccessor =
typename inherited::template _SafeReadWriteRepAccessor<T2>;
602 nonvirtual
void _AssertRepValidType ()
const;