branchless optimization
This commit is contained in:
parent
0fbc29e482
commit
640672be47
@ -61,14 +61,22 @@ public:
|
|||||||
inline void insert(int elem) noexcept {
|
inline void insert(int elem) noexcept {
|
||||||
if(TL_LIKELY(count < capacity)) {
|
if(TL_LIKELY(count < capacity)) {
|
||||||
// INSERT
|
// INSERT
|
||||||
|
|
||||||
|
/* Same as this:
|
||||||
if(mid > 0) {
|
if(mid > 0) {
|
||||||
nex[mid - 1] = old[mid - 1];
|
nex[mid - 1] = old[mid - 1];
|
||||||
--mid;
|
--mid;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
bool hasmid = (mid > 0);
|
||||||
|
mid -= hasmid;
|
||||||
|
nex[mid] = hasmid ? old[mid] : nex[mid];
|
||||||
|
|
||||||
nex[end++] = elem;
|
nex[end++] = elem;
|
||||||
++count;
|
++count;
|
||||||
} else {
|
} else {
|
||||||
// GROW
|
// GROW
|
||||||
|
|
||||||
grow_and_insert(elem);
|
grow_and_insert(elem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user