Title here
Summary here
Maps are Chapel’s way of managing a collection of key/value pairs. Below is an example of how to work with maps in Chapel.
use Map;
use IO;
proc main() {
// Create an empty map
var m: map(string, int);
// Set key/value pairs using typical syntax
m["k1"] = 7;
m["k2"] = 13;
// Print the map to show all its key/value pairs
writeln("map: ", m);
// Get a value for a key
var v1 = m["k1"];
writeln("v1: ", v1);
// If the key doesn’t exist, the default value of the value type is returned
var v3 = m.getOrDefault("k3", 0);
writeln("v3: ", v3);
// The length of the map can be obtained
writeln("len: ", m.size);
// Remove key/value pairs from the map
m.remove("k2");
writeln("map: ", m);
// Clear all key/value pairs from the map
m.clear();
writeln("map: ", m);
// Check if a key is present in the map
var prs = m.contains("k2");
writeln("prs: ", prs);
// Declare and initialize a new map with key/value pairs
var n: map(string, int) = map(tuple("foo", 1), tuple("bar", 2));
writeln("map: ", n);
// Using a utility function to compare maps
var n2: map(string, int) = map(tuple("foo", 1), tuple("bar", 2));
if n == n2 {
writeln("n == n2");
}
}To run the program, save the code in a .chpl file and use chpl to compile and execute it.
$ chpl map-example.chpl -o map-example
$ ./map-example
map: { ("k1" => 7) }
v1: 7
v3: 0
len: 1
map: { ("k1" => 7) }
map: { }
prs: false
map: { ("bar" => 2), ("foo" => 1) }
n == n2Chapel provides a robust set of functions in the Map module to help with common map operations like initialization, querying, and comparing maps. This example demonstrates some basic usage of maps in Chapel.
Comments powered by Disqus