/usr/include/lam/mpi2cxx/mpi2cxx_map.h is in lam4-dev 7.1.4-3.1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | // -*- C++ -*-
//
// $Id: mpi2cxx_map.h,v 1.2 2002/10/09 20:57:37 brbarret Exp $
//
// Copyright (c) 2001-2002 The Trustees of Indiana University.
// All rights reserved.
// Copyright (c) 1998-2001 University of Notre Dame.
// All rights reserved.
// Copyright (c) 1994-1998 The Ohio State University.
// All rights reserved.
//
// This file is part of the LAM/MPI software package. For license
// information, see the LICENSE file in the top level directory of the
// LAM/MPI source distribution.
//
// $HEADER$
//
#ifndef MPI2CPP_MAP_H_
#define MPI2CPP_MAP_H_
#include "mpi2cxx/mpi2cxx_list.h"
typedef mpi2cppList mpi2cppContainer;
template <class TYPE1, class TYPE2>
class mpi2cppMap {
mpi2cppContainer c;
public:
typedef TYPE1 key_t;
typedef TYPE2 value_t;
typedef mpi2cppList::iter iter;
struct Pair {
Pair(key_t f, value_t s) : first(f), second(s) {}
Pair() : first((key_t) 0), second((value_t) 0) { }
key_t first;
value_t second;
};
mpi2cppMap() { }
~mpi2cppMap() {
for (iter i = c.begin(); i != c.end(); i++) {
delete (Pair*)(*i);
}
}
Pair* begin();
Pair* end();
value_t& operator[](key_t key)
{
value_t* found = (value_t*)0;
for (iter i = c.begin(); i != c.end(); i++) {
if (((Pair*)*i)->first == key)
found = &((Pair*)*i)->second;
}
if (! found) {
iter tmp = c.insert(c.begin(), new Pair(key, (value_t) 0));
found = &((Pair*)*tmp)->second;
}
return *found;
}
void erase(key_t key)
{
for (iter i = c.begin(); i != c.end(); i++) {
if (((Pair*)*i)->first == key) {
delete (Pair*)*i;
c.erase(i); break;
}
}
}
};
#endif
|