我正在应用程序中记录一些统计信息。统计数据之一是BigDataStructure的大小。我有两个选择:

  • 创建一个计数器并递增/
    每次递减计数器
    从中添加/删除
    BigDataStructure。
  • 每次添加/删除
    在BigDataStructure中,设置
    与BigDataStructure.size()相对。

  • 以一种或另一种方式进行操作是否有很好的论据?我自己增加/减少计数器可以避免调用BigDataStructure.size()。它也不直接涉及赋值运算符(尽管也许是在幕后?)

    给定这两种选择,哪一种更可取?

    最佳答案

    .size()可能是这2个选项中不太容易出错的原因,因为它是idempotent。如果您想了解线程/同步问题,请在这里使用.size()更安全。

    此外,今天您只有1个添加条目的位置和1个删除条目的位置。但是也许将来不会如此。

    关于c++ - 增/减与分配?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/757698/

    10-12 16:31