gpt4 book ai didi

c++ - 在 native C++ 类中缓存字符串长度的后果?

转载 作者:行者123 更新时间:2023-11-30 00:58:24 24 4
gpt4 key购买 nike

所以我们有一个自定义字符串类,它只包装了一个基本的 C 字符串:char* 或 wchar_t*。我们自定义字符串类的唯一数据成员是这个指针。无论如何,在工作中我们正在讨论添加另一个缓存内部 char 数组长度的成员。所以不是

MyString::Count { return _tcslen(foo); }

我们可以这样写:

MyString::Count { return m_count; }

但我敢肯定,如果我们这样做,就会遇到一个特殊的问题。你知道,一些特殊的方法可以打破这样的实现。所以我的问题是,缓存长度的缺点是什么?

最佳答案

第一件事:除非您有分析数据表明这确实是一个瓶颈,否则不要这样做。如果你没有那个,你们一直在浪费时间争论这个 IMO。先把你的代码改正,再去攻克重要的瓶颈。

如果您缓存它,请确保所有可以修改内部字符串的路径也相应地更新 m_count

如果您的包装器发出非常量引用或指向数据的指针,请不要缓存它 - 您无法确定该值将保持固定。

关于c++ - 在 native C++ 类中缓存字符串长度的后果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6285284/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com