q2K BHP
Black History Portal
THE BHP WIRE —
HIDDEN TRUTHS
What's New!
THE JOURNEY THROUGH TIME

Explore Black History

Explore the people, places, events, achievements, struggles and stories that shaped our journey.

✊🏾

Civil Rights

Movements, leaders, victories and the continuing fight for equality.

⚙️

Black Inventors

Innovation, patents, science, technology and world-changing contributions.

🏆

Sports

Pioneers, champions, Negro Leagues, records, activism and excellence.

♟️

People

Meet the people whose lives, choices and achievements shaped the journey.

📍

Places

Black towns, communities, institutions and places where history happened.

📜

Events

Moments that changed communities, movements, institutions and the nation.

Enter a person, place, event, or topic.
MY'STORY

The MOVE Fire

This is a personal recollection on the Move fire on May 13, 1985 Philadelphia police fired thousands of rounds at the MOVE house, city officials approved dropping an explosive device on the roof, the resulting fire was allowed to burn, 11 people—including five children—died, and 61 homes were destroyed. Philadelphia City Council later called it a “brutal attack carried out by the City of Philadelphia on its own citizens” and acknowledged that no individual faced criminal consequences for the bombing. One timeline correction worth preserving for the BHP record: the major previous MOVE-police confrontation was August 8, 1978, about seven years before the bombing, not a year or two earlier. Officer James Ramp was killed, other police and firefighters were wounded, nine MOVE members were later convicted, and television cameras recorded police beating Delbert Africa during his arrest. The 1985 MOVE Commission later specifically criticized city planners for failing to adequately use lessons from that 1978 confrontation. And that actually strengthens the point you’re making: 1985 did not happen without precedent or institutional memory. There had already been a deadly confrontation with MOVE, years of conflict, negotiations and police involvement before Osage Avenue.

MORE →
BLACK FACTS
The Truths They Never Taught You...

Shirley Chisholm — Unbought and Unbossed

In 1968 Shirley Chisholm became the first Black woman elected to the United States Congress. In 1972 she launched a campaign for the Democratic presidential nomination, breaking another political barrier.

MORE →
BHP gathered finds from its connected research sources. Showing the 4 strongest Black History matches.
← BACK TO RESULTS
Wikipedia

Multimap

In computer science, a multimap (sometimes also multihash, multidict or multidictionary) is a generalization of a map or associative array abstract data type in which more than one value may be associated with and returned for a given key. Both map and multimap are particular cases of containers (for example, see C++ Standard Template Library containers). Often the multimap is implemented as a map with lists or sets as the map values.

Examples

[edit]
  • In a student enrollment system, where students may be enrolled in multiple classes simultaneously, there might be an association for each enrollment of a student in a course, where the key is the student ID and the value is the course ID. If a student is enrolled in three courses, there will be three associations containing the same key.
  • The index of a book may report any number of references for a given index term, and thus may be coded as a multimap from index terms to any number of reference locations or pages.
  • Querystrings may have multiple values associated with a single field. This is commonly generated when a web form allows multiple check boxes or selections to be chosen in response to a single form element.

Language support

[edit]

C++

[edit]

C++'s Standard Template Library provides the multimap container for the sorted multimap using a self-balancing binary search tree,[1] and SGI's STL extension provides the hash_multimap container, which implements a multimap using a hash table.[2]

As of C++11, the Standard Template Library provides the unordered_multimap for the unordered multimap.[3]

Dart

[edit]

Quiver provides a Multimap for Dart.[4]

Java

[edit]

Apache Commons Collections provides a MultiMap interface for Java.[5] It also provides a MultiValueMap implementing class that makes a MultiMap out of a Map object and a type of Collection.[6]

Google Guava provides a Multimap interface and implementations of it.[7]

Kotlin

[edit]

Kotlin does not have explicit support for multimaps,[8] but can implement them using Maps with containers[9] for the value type. E.g. a Map<User, List<Book>> can associate each User with a list of Books.

Python

[edit]

Python provides a collections.defaultdict class that can be used to create a multimap. The user can instantiate the class as collections.defaultdict(list).

OCaml

[edit]

OCaml's standard library module Hashtbl implements a hash table where it's possible to store multiple values for a key.

Scala

[edit]

The Scala programming language's API also provides Multimap and implementations.[10]

See also

[edit]
  • Multiset for the case where same item can appear several times

References

[edit]
  1. ^ "multimap<Key, Data, Compare, Alloc>". Standard Template Library Programmer's Guide. Silicon Graphics International.
  2. ^ "hash_multimap<Key, HashFcn, EqualKey, Alloc>". Standard Template Library Programmer's Guide. Silicon Graphics International.
  3. ^ "Working Draft, Standard for Programming Language C++" (PDF). p. 7807.
  4. ^ "Multimap". Quiver API docs.
  5. ^ "Interface MultiMap". Commons Collections 3.2.2 API, Apache Commons.
  6. ^ "Class MultiValueMap". Commons Collections 3.2.2 API, Apache Commons.
  7. ^ "Interface Multimap<K,V>". Guava Library 2.0. Archived from the original on 2013-01-15. Retrieved 2013-01-01.
  8. ^ "Implement a MultiMap in Kotlin | Baeldung on Kotlin". 5 December 2023.
  9. ^ "Accessing data using Room DAOs".
  10. ^ "Scala.collection.mutable.MultiMap". Scala stable API.

Source: Wikipedia. Article content is retrieved live through the MediaWiki API.

No preview image
Wikipedia

Multimap

In computer science, a multimap (sometimes also multihash, multidict or multidictionary) is a generalization of a map or associative array abstract data type in which more than one value may be associated with and returned for a given key. Both map and multimap are particular cases of containers (for example, see C++ Standard Template Library containers). Often the multimap is implemented as a map with lists or sets as the map values.

MORE →
No preview image
Wikipedia

Multimap.com

Multimap.com was a provider of mapping and location-based services. Founded around 1997 and based in London, it was acquired by Microsoft in 2007 for $50 million. It was then merged into Bing Maps. It offered street maps and door-to-door travel directions on a public web site. Other offerings included aerial photography, local information, and business services. Services were also offered through its partners, including accommodation, restaurant and train-ticket booking. It also sold historic and aerial photograph prints. Multimap offered discrete panning by clicking links, a form of user interaction later displaced by continuous panning 'slippy' maps. The Geo microformat was used to provide a Wikipedia map overlay generated from the official database download. This was used to browse geotagged articles.

MORE →
No preview image
Wikipedia

Sequence container (C++)

In C++, sequence containers or sequence collections refer to a group of container class templates in the standard library that implement storage of data elements. Being templates, they can be used to store arbitrary elements, such as integers or custom classes. One common property of all sequential containers is that the elements can be accessed sequentially. Like all other standard library components, they reside in namespace std. The following containers are defined in the current revision of the C++ standard: std::array implements a compile-time non-resizable array. std::bitset implements a compile-time bit set. std::vector implements an array with fast random access and an ability to automatically resize when appending elements. std::inplace_vector implements a resizable array with contiguous in-place storage. std::deque implements a double-ended queue with comparatively fast random access. std::list implements a doubly linked list. std::forward_list implements a singly linked list. std::hive implements an object pool. Each of these containers implements different algorithms for data storage, which means that they have different speed guarantees for different operations. There are also versions of these collections in namespace std::pmr (for polymorphic memory resources). These versions specify the optional template parameter Allocator as std::pmr::polymorphic_allocator. C++ further defines container adapters that wrap a sequence container: std::stack implements a stack with deque as the default underlying container. std::queue implements a queue with deque as the default underlying container. std::priority_queue implements a priority queue (by default max heap) with vector as the default underlying container. std::flat_set implements a "flat set" (stores a sorted set of unique keys) with vector as the default underlying container. std::flat_map implements a "flat map" (stores a sorted set of unique key-value pairs) with vector as the default underlying containers. std::flat_multiset implements a "flat multi-set" (stores a sorted set of keys) with vector as the default underlying container. std::flat_multimap implements a "flat multi-map" (stores a sorted set of key-value pairs) with vector as the default underlying containers. The "flat" collections (std::flat_set, std::flat_map, std::flat_multiset, and std::flat_multimap) use std::vector as the underlying container, unlike their "non-flat" equivalents (std::set, std::map, std::multiset, and std::multimap), which store data as red–black trees (hence being "flat"). View container types represent views over non-owning arrays of elements: std::span implements a non-owning view over a contiguous sequence of objects. std::mdspan implements a non-owning view over a multi-dimensional array. Since each of the containers needs to be able to copy its elements in order to function properly, the type of the elements must fulfill CopyConstructible and Assignable requirements. For a given container, all elements must belong to the same type. For instance, one cannot store data in the form of both char and int within the same container instance.

MORE →
No preview image
Wikipedia

Associative containers (C++)

In C++, associative containers are class templates in the standard library that maintain their elements in an order determined by their keys and provide key-based lookup. They reside in namespace std and are parameterized by a key type, a comparison function, and an allocator; maps also have a mapped-value type. The standard specifies four basic associative containers: std::set std::map std::multiset std::multimap set and map store at most one element for each equivalent key, whereas multiset and multimap permit multiple elements with equivalent keys. Maps store a mapped value with each key; sets store keys alone. Since C++17, alias templates for these containers have also been provided in namespace std::pmr; they use std::pmr::polymorphic_allocator as the allocator type. std::set and std::multiset are declared in header , while std::map and std::multimap are declared in header . Unlike the unordered associative containers, which organize elements into hash-table buckets and do not specify an overall iteration order, associative containers traverse their elements in non-descending key order. The two groups also provide different complexity guarantees. std::map and std::set are commonly implemented as red-black trees, although the standard does not require that representation. Comparable ordered map and set types include java.util.TreeMap and java.util.TreeSet in Java, System.Collections.Generic.SortedDictionary and System.Collections.Generic.SortedSet in .NET, and std::collections::BTreeMap and std::collections::BTreeSet in Rust.

MORE →
TOPIC OF THE DAY

Greenwood / Black Wall Street

Before the 1921 destruction of Tulsa’s Greenwood District, Black residents had created a remarkable center of business and community life. The district included stores, professional offices, entertainment venues and homes owned by Black citizens. Understanding Greenwood means learning what was built—not only what was burned.

MORE →
TRIVIA QUESTION OF THE DAY

Which Black woman became the first elected to the United States Congress?

Shirley Chisholm, elected in 1968.