Why vector is faster than vector in the following case

后端 未结 2 764
星月不相逢
星月不相逢 2021-02-08 19:22

This phenomenon is found when I programmed for the LeetCode problem N-Queens.

I have two versions of accepted code, the only difference between which is the way I stored

2条回答
  •  情深已故
    2021-02-08 20:04

    My interpretation:

    There's a vector specialization for bool, which is a bit map; that's highly efficient with regard to storage (1Byte of vector storage = 8 bool), but worse at actually accessing the data; for any other vector, you can just access the element at the nth position by *([address of first element + n * sizeof(element)]), but for the getting bool-out-of-byte storage, you'll inevitably will need to do some bit operations, which, in times of large caches, might be significantly slower than just having an array of ints, representing one truth value each.

提交回复
热议问题