gpt4 book ai didi

Java 到 Cpp 代码转换 : compareTo

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:27:21 26 4
gpt4 key购买 nike

我有个小问题。我必须将 Java 代码转换为 C++ 代码。我在一些对象的一个​​ java 类列表中。在 C++ 中,我有具有相同目的的 vector 。但是,我在这行 Java 代码中遇到了问题:

if(compareTo(m.roba.get(i), m.roba.get(j)) == -1)

m 是类的对象,roba 是 lista(来自 Java)。从该列表返回的是字符串类型(它是一些名称)。那么如何在 C++ 中做同样的事情呢?我试过这个:

if(strcmp(m.roba.at(i), m.roba.at(j)) != -1)

在 C++ 中,但出现错误:“不存在从“Roba”到“char”的合适转换”

我忘了说 list roba 是 Roba 类的类型。 C++ 也一样

最佳答案

假设m.roba.at(i)定义一个 <运算符类似于 std::string ,您可以将其更改为

if (m.roba.at(i) < m.roba.at(j)) {
...
}

与 Java 不同,C++ 允许编写自定义比较运算符。这就是 C++ 让您以更自然的方式编写自定义对象比较的方式 - 而不是显式调用 compareTo , 您可以使用 <运算符(operator)。以下是运算符的定义方式:

inline bool operator< (const Roba& lhs, const Roba& rhs) {
// Comparison logic goes here
}

关于Java 到 Cpp 代码转换 : compareTo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17261257/

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