这种语法在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];
    }
}