System::Collections::Generic::Dictionary class

Dictionary class

Forward declaration of Dictionary class.

template<typename TKey,typename TValue>class Dictionary : public System::Collections::Generic::BaseDictionary<std::unordered_map<TKey, TValue, EqualityComparerHashAdapter<TKey>, EqualityComparerAdapter<TKey>, ASPOSE_MAP_ALLOCATOR_TYPE(TKey, TValue)>>
ParameterDescription
TKeyKey type.
TValueValue type.

Nested classes

Methods

MethodDescription
Dictionary()Creates empty dictionary.
Dictionary(const map_t&)Copies data from map.
Dictionary(int)Overload which corresponds to creating pre-allocated dictionary; does no allocation, actually.
Dictionary(const SharedPtr<IDictionary<TKey, TValue>>&)Copy constructor.
Dictionary(const SharedPtr<IDictionary<TKey, TValue>>&, const SharedPtr<IEqualityComparer<TKey>>&)Copy constructor.
Dictionary(const SharedPtr<IEqualityComparer<TKey>>&)Creates empty dictionary.
Dictionary(int, const SharedPtr<IEqualityComparer<TKey>>&)Creates empty dictionary.
GetEnumerator() overrideCreates enumerator object.

Typedefs

TypedefDescription
IEnumerablePtrPointer to enumerable interface.
IEnumeratorPtrPointer to enumerator.
KeyCollectionRTTI information.
KVPairKey-value pair type.
map_tUnderlying data type.
PtrPointer type.
ValueCollectionCollection of values to extract.

Remarks

Dictionary that maps values to keys. Objects of this class should only be allocated using System::MakeObject() function. Never create instance of this type on stack or using operator new, as it will result in runtime errors and/or assertion faults. Always wrap this class into System::SmartPtr pointer and use this pointer to pass it to functions as argument.

#include <system/collections/dictionary.h>
#include <system/smart_ptr.h>

using namespace System;
using namespace System::Collections::Generic;

int main()
{
  // Create the Dictionary-class instance.
  auto dictionary = MakeObject<Dictionary<int, String>>();

  // Fill the dictionary.
  dictionary->Add(0, u"Foo");
  dictionary->Add(1, u"Bar");
  dictionary->Add(2, u"Baz");

  // Print the dictionary items.
  for (const auto &pair: dictionary)
  {
    std::cout << pair.get_Key() << " - " << pair.get_Value() << std::endl;
  }

  return 0;
}
/*
This code example produces the following output:
0 - Foo
1 - Bar
2 - Baz
*/

See Also