我遇到了一段代码,我需要简单地对给定的 CComBSTR 对象(类似于Y.StartsWith("X")
)进行前缀检查。C++ 对我来说有点陌生,我最关心的是效率。我不需要以任何方式修改 CComBSTR。我想要的只是返回一个布尔值是否以 X 前缀开头。
查看CComBSTR 成员下 API 中列出的运算符,它允许进行非常基本的比较,例如 ==、>、< 等。我对如何尝试解决这个问题有两个想法(如下所列)。但是,我对解决此问题的最有效/最简单的方法没有深入的了解。如果我完全不在基地,请告诉我。
- 使用BSRTToArray创建一个数组,然后在其中迭代前 n 个索引以检查它是否具有某个前缀。
- 从 CComBSTR 获取 BSTR 并在 BSTR 上进行一些比较(还没有弄清楚如何做到这一点)