Ad
  • Custom User Avatar

    It is faster , but less space efficient .

    The thing is - you cannot determine even an approximate size of the resulting vector beforehand .

    Sure , the input {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16} requires the output vector to have a size equal to 16 elements .

    And input {1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8} requires the output vector to have a size equal to 8 elements .

    While input {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1} requires the output vector to have a size equal to just only 1 element .

    Favoring speed over space is generally a good idea , but i think it is also worth knowing when "reserve" can be used with/without drawbacks .

  • Custom User Avatar

    Hmmm.... depends... You can check on compiler explorer the 'optimized' diff between the per char code and the 'std::accumulate'one ...
    You're right though, never allocate more than required..

  • Custom User Avatar
  • Custom User Avatar