Lecture Preview: Sets, Lexicons, and Maps

(Suggested book reading: Programming Abstractions in C++, section 5.4 - 5.6)

In this lecture we will talk about three new data structures:

  • A set is a collection that stores its elements in sorted order and does not allow duplicates. Sets are useful when you want a collection that ensures that all of its data is unique.

    stack

  • A lexicon is a set that is specialized to store words from a dictionary. It is good for searching for words or searching for a prefix (starting substring) of a word.

  • A map is a collection that stores pairs rather than single values. Each pair contains two parts called a key and a value. You can use a key to look up a value later. Maps are useful for storing one-way associations like a dictionary or phone book.

    queue

Here is a short code example that uses a set:

Set<int> set;
set.add(12);
set.add(8);
set.add(12);           // duplicate; not added
set.add(17);
set.add(8);            // duplicate; not added
cout << set << endl;   // {8, 12, 17}

Here is a short code example that uses a map:

Map<string, double> salary;
salary["Marty"]   = 10000.00;                // or, salary.put("Marty",   10000.00);
salary["Cynthia"] = 40000.00;                // or, salary.put("Cynthia", 40000.00);
salary["Mehran"]  = 2 * salary["Cynthia"];   // or, salary.put("Mehran",  2 * salary.get("Cynthia"));
cout << salary << endl;                      // {"Cynthia":40000.0, "Marty":10000.0, "Mehran":80000.0}
This document and its content are copyright © Marty Stepp and Julie Zelenski, 2019. All rights reserved. Any redistribution, reproduction, transmission, or storage of part or all of the contents in any form is prohibited without the authors' expressed written permission.