-//===- llvm/ADT/MapVector.h - Map with deterministic value order *- C++ -*-===//
+//===- llvm/ADT/MapVector.h - Map w/ deterministic value order --*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
#ifndef LLVM_ADT_MAPVECTOR_H
#define LLVM_ADT_MAPVECTOR_H
-#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DenseMap.h"
-#include "llvm/ADT/STLExtras.h"
#include <vector>
namespace llvm {
if (Result.second) {
Vector.push_back(std::make_pair(KV.first, KV.second));
I = Vector.size() - 1;
- return std::make_pair(llvm::prior(end()), true);
+ return std::make_pair(std::prev(end()), true);
}
return std::make_pair(begin() + I, false);
}
(Vector.begin() + Pos->second);
}
- /// \brief Erase entry with the given key.
- void erase(const KeyT &key) {
- typename MapType::iterator Pos = Map.find(key);
- if (Pos == Map.end())
- return;
-
- Vector.erase(Vector.begin() + Pos->second);
+ /// \brief Remove the last element from the vector.
+ void pop_back() {
+ typename MapType::iterator Pos = Map.find(Vector.back().first);
Map.erase(Pos);
+ Vector.pop_back();
}
};