5.6. Unordered Sets

An unordered_set is an unordered collection of zero or more unique C++ data values of a particular type. To use unordered_sets, you import unordered_set from the Standard template library with #include <unorderd_set>.

Unordered_sets allow for fast retrieval of individual elements based on their value. In an unordered_set, the value of an element is at the same time its key, that identifies it uniquely. Keys are immutable, therefore, the elements in an unordered_set cannot be modified once in the container - However, they can be inserted and removed.

Unordered sets do not allow duplicates and are initialized using comma-delimited values enclosed in curly braces. The collection can be assigned to a variable as shown below.

set<int> mySet = {3, 6, 4, 78, 10}

Unordered sets support a number of methods that should be familiar to those who have worked with sets in a mathematics setting. Table 6 provides a summary. Examples of their use follow.

The code below is an example of a program that can detect if a specific char is in an unordered set.

the find method used for a conditional in Checker compares each item in the set with the given parameter until there is a match. the set.find(letter) == set.end() section means that if find cannot find the letter before reaching the end of the set, then letter is not contained in the set.

5.6.1. Matching

5.7. Summary

  1. A statically allocated C++ array is an ordered collection of one or more C++ data values of identical type stored in contiguous memory.

  2. A vector is a dynamically allocated array with many useful methods. It is more similar to the Python list than the array.

  3. C++ strings are a sequential collection of zero or more characters. They are very similar to Python strings.

  4. A hash table is used to store keys-value pairs. It applies a related hash function to the key in order to compute the location of the associated value. Look-up is typically very fast.

  5. A set is an unordered collection of unique values.

5.8. Check Yourself

You have attempted of activities on this page