【发布时间】:2013-11-29 02:25:07
【问题描述】:
我知道在 java 中有一个 compareTo 方法,您可以在一个类中编写该方法,该方法将比较两个变量并返回一个值 -1、1 或 0,表示大于、小于和等于操作。有没有办法在 C++ 中做到这一点?
背景: 我创建了一个修改过的字符串类,其中它需要一个字符串和一个数组列表。我希望能够以传统方式比较字符串,如果它在字母表中较低,它将小于,高于它将大于。比我只想将数组列表链接到文件以存储在文本文件中索引单词的页面。无论如何,细节并不重要,因为我已经写好了课程。我只需要创建可用于我的 cpp 文件的主文件或其他数据类型(例如各种树)的 compareTo 方法。
我知道如何用 java 编写代码,也许有人可以帮助我使用 C++ 语法(不幸的是,我需要为这个项目用 C++ 编写,而且我是 C++ 新手)
我将缩短代码以给出我在做什么的粗略轮廓,而不是像我在 java 中所知道的那样编写 compareTo 方法
class name ModifiedString
Has variables: word , arraylist pagelist
Methods:
getWord (returns the word associated with the class, i.e its string)
appendPageList (adds page numbers to the array list, this doesnt matter in this question)
我将如何在 java 中做到这一点
int compareTo(ModifiedString a){
if(this.getWord() > a.getWord())
return 1;
else if (this.word() < a.getWord())
return -1;
else return 0;
}
那么当 或 == 在 ModifiedWord 上使用时,这些操作将是有效的。
【问题讨论】:
-
读取操作符重载。
-
我实际上将使用向量而不是数组列表,因为在 C++ 中没有像 java 中那样的数组列表定义。
-
先决定语言。标题说 C,它没有运算符重载。
-
您的 java 方法不正确,您比较的是地址值而不是实际字符串
标签: c++ class compare string-comparison