IdList: Remove Unused IndexOf, First, Last and NextAfter Methods

This commit is contained in:
ruevs 2021-04-05 18:05:08 +03:00 committed by phkahler
parent 9dd67c7ba0
commit 034d9213f1

View File

@ -488,7 +488,7 @@ public:
if(IsEmpty()) {
return 0;
} else {
return Last()->h.v;
return elemstore[elemidx.back()].h.v;
}
}
@ -514,9 +514,9 @@ public:
}
void ReserveMore(int howMuch) {
elemstore.reserve(n + howMuch);
elemidx.reserve(n + howMuch);
// freelist.reserve(n + howMuch); // PAR@@@@ maybe we should - not much more RAM
elemstore.reserve(elemstore.size() + howMuch);
elemidx.reserve(elemidx.size() + howMuch);
// freelist.reserve(freelist.size() + howMuch); // PAR@@@@ maybe we should - not much more RAM
}
void Add(T *t) {
@ -556,19 +556,6 @@ public:
return t;
}
int IndexOf(H h) {
if(IsEmpty()) {
return -1;
}
auto it = std::lower_bound(elemidx.begin(), elemidx.end(), h, Compare(this));
if(it == elemidx.end()) {
return -1;
} else {
auto idx = std::distance(elemidx.begin(), it);
return static_cast<int>(idx);
}
}
T *FindByIdNoOops(H h) {
if(IsEmpty()) {
return nullptr;
@ -584,28 +571,6 @@ public:
}
}
T *First() {
return (IsEmpty()) ? nullptr : &(elemstore[0]);
}
T *Last() {
return (IsEmpty()) ? nullptr : &(elemstore[elemidx.back()]);
}
// Remove this entirely?!? 199 places in the code mostly for loops?
T *NextAfter(T *prev) {
if(IsEmpty() || !prev) {
return nullptr;
}
// PAR@@@@ This is slower than before now. O(log(n)) was O(1)
auto it = std::upper_bound(elemidx.begin(), elemidx.end(), prev, Compare(this));
if(it == elemidx.end()) {
return nullptr;
} else {
return &elemstore[*it];
}
}
T &Get(size_t i) { return elemstore[elemidx[i]]; }
T const &Get(size_t i) const { return elemstore[elemidx[i]]; }
T &operator[](size_t i) { return Get(i); }
@ -674,7 +639,7 @@ public:
l->elemidx.push_back(it);
}
l->n = n;
l->n = n;
}
void Clear() {