C++ string.compare()

标签 c++ pointers string

我正在为一项任务构建一个比较器,但我很紧张,因为这看起来很简单,但我想不通。

这个函数给我带来了麻烦:

int compare(Word *a, Word *b)
{
    string *aTerm = a->getString();
    string *bTerm = b->getString();

    return aTerm->compare(bTerm);
}

Word::getString 返回一个字符串*

错误:

 In member function `virtual int CompWordByAlpha::compare(Word*, Word*)':   
  no matching function for call to...

...后面是一堆函数定义。

有什么帮助吗?

最佳答案

您正在将字符串与字符串指针进行比较,这是无效的。你要

   return aTerm->compare(*bTerm);

关于C++ string.compare(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1070882/

相关文章:

c++ - 为什么当我在 int main() 之前声明它而不是之后声明它时函数起作用?

c++ - 为什么 boost 可选引用不是 T* 的包装器?

c++ - 减 1 与递减迭代器

java - 将数组列表中的文本附加到字符串需要花费大量时间

c++ - std::generate_n 算法需要复制 ctor。如何在下面的代码中避免这种情况?

c++ - 使用正则表达式从JSON提取消息内容

c++ - VS 代码 C++ : "exited with code=3221225785"

c++ - "No-Const Pointer to Const "调用函数

java - Java 中的字符串拆分未按预期工作,给出了错误的结果

Python 3 : str(bytes_object) and str(bytes_object, 编码)不一致?