Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[SMPI] Move a map in smpi::Group from array to std::vector
[simgrid.git] / src / smpi / include / smpi_group.hpp
index 64812ca..ca6ad34 100644 (file)
@@ -8,6 +8,7 @@
 #define SMPI_GROUP_HPP_INCLUDED
 
 #include "smpi_f2c.hpp"
+#include <smpi/smpi.h>
 
 namespace simgrid{
 namespace smpi{
@@ -15,8 +16,12 @@ namespace smpi{
 class Group : public F2C{
   private:
     int size_;
-    int *rank_to_index_map_;
-    xbt_dict_t index_to_rank_map_;
+    /* This is actually a map from int to int. We could use
+     * std::map here, but looking up a value there costs O(log(n)).
+     * For a vector, this costs O(1). We hence go with the vector.
+     */
+    std::vector<int> rank_to_index_map_;
+    std::unordered_map<int, int> index_to_rank_map_;
     int refcount_;
   public:
     explicit Group();