这种语法在Java中的等价物是什么? 是一个关于如何在C++和java之间转换代码的快速问题。我一直在学习神经网络,并开始用我最有经验的语言Java编写自己的。到目前为止,从C++到java的代码转换是相当简单的,但是我遇到了一个小问题。我对如何将这一行特定的代码翻译成Java等效代码感到困惑,通过搜索,我找不到任何特定于此问题的内容
原代码为:这种语法在Java中的等价物是什么? 是一个关于如何在C++和java之间转换代码的快速问题。我一直在学习神经网络,并开始用我最有经验的语言Java编写自己的。到目前为止,从C++到java的代码转换是相当简单的,但是我遇到了一个小问题。我对如何将这一行特定的代码翻译成Java等效代码感到困惑,通过搜索,我找不到任何特定于此问题的内容,java,translate,Java,Translate,原代码为: Struct SNeuron { //the number of inputs into the neuron int m_NumInputs; //the weights for each input vector<double> m_vecWeight; //ctor SNeuron(int NumInputs); }; 转换为Java等价物?从我所读到的,结构看起来不是java使用的一个特性,所以我只是在努力理解在使用的上下文
Struct SNeuron {
//the number of inputs into the neuron
int m_NumInputs;
//the weights for each input
vector<double> m_vecWeight;
//ctor
SNeuron(int NumInputs);
};
转换为Java等价物?从我所读到的,结构看起来不是java使用的一个特性,所以我只是在努力理解在使用的上下文中代码行到底是什么。C++中的 < P>,代码> SnNoint(int NoMINDATION);是采用int
的构造函数的声明,它包含在类声明中
在Java中不会这样做——实际上,所有构造函数和所有函数都内联在类声明中。换句话说
SNeuron(int NumInputs); // within the class declaration
SNeuron::SNeuron(int NumInputs) : m_NumInputs(NumInputs){} // In a translation unit
映射到
SNeuron(int NumInputs) {
m_NumInputs = NumInputs;
}
但请注意,对Java字段使用m
是一种特殊的方法。公共类SNeuron
public class SNeuron
{
// the number of inputs into the neuron
public int m_NumInputs;
// the weights for each input
public List<Double> m_vecWeight = new ArrayList<Double>();
// ctor
SNeuron(int NumInputs) {
m_NumInputs = NumInputs;
}
{
//输入神经元的数量
公共国际货币单位;
//每个输入的权重
public List m_vecWeight=new ArrayList();
//执行器
斯奈隆(国际货币单位){
m_NumInputs=NumInputs;
}
考虑到代码中的注释,我很确定等价物是:
public class SNeuron {
public final double[] weights;
public SNeuron(int numInputs) {
weights = new double[numInputs];
}
}
如果你真的不想使用列表
,那么它的速度会慢得多,占用的内存也会大得多-这样的列表中的每一个double都会成为一个具有所有相关开销的完整对象。该函数是如何调用的?在Java中它的调用是相同的。:)它是一个构造函数。我觉得它们在Java中使用相同的语法类和结构之间的差异是默认的访问保护级别。@Angew:这意味着我需要一杯咖啡。你也想要一杯吗?不,谢谢:-)我可能是这个星球上唯一一个这样的程序员,但我不喝咖啡。这太完美了!我有一种感觉,我必须给它一个身体,但让身体空着感觉不对。非常感谢!不客气,如果您还没有任何问题,请将答案标记为已解决。
public class SNeuron
{
// the number of inputs into the neuron
public int m_NumInputs;
// the weights for each input
public List<Double> m_vecWeight = new ArrayList<Double>();
// ctor
SNeuron(int NumInputs) {
m_NumInputs = NumInputs;
}
public class SNeuron {
public final double[] weights;
public SNeuron(int numInputs) {
weights = new double[numInputs];
}
}