branchless optimization

This commit is contained in:
masterexplorer 2024-08-27 11:20:20 +02:00
parent 0fbc29e482
commit 640672be47

View File

@ -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);
} }
} }