C++ 如何通过引用将向量作为参数传递到不同的函数中?
我试图通过引用将一个向量传递到另一个函数中,但它给了我几个错误 我试图传递给“XORLogic”函数的数据是一个向量的和C++ 如何通过引用将向量作为参数传递到不同的函数中?,c++,function,vector,neural-network,arguments,C++,Function,Vector,Neural Network,Arguments,我试图通过引用将一个向量传递到另一个函数中,但它给了我几个错误 我试图传递给“XORLogic”函数的数据是一个向量的和 #include <iostream> #include <vector> #include <numeric> #include <functional> using std::vector; // Expected Output int XORLogic(vector<int> &Input1, int
#include <iostream>
#include <vector>
#include <numeric>
#include <functional>
using std::vector;
// Expected Output
int XORLogic(vector<int> &Input1, int x)
{
if (std::accumulate(Input1.begin(), Input1.end(), 0) == 0 || 2)
{
x = 0;
}
else if (std::accumulate(Input1.begin(), Input1.end(), 0) == 1)
{
x = 1;
}
return x;
}
// Sigma notation
float SumUp(float Input, float Weight)
{
float Summ = 1 + (Weight * Input);
return Summ;
}
// Sigmoid function.
float Sigmoid(float Summ)
{
float SigmoidOutput = 1 / (1 + exp(-Summ));
return SigmoidOutput;
}
// Hidden neuron
float Hidden(int x, float y, float Summ)
{
SumUp(x, y);
float Summ2 = Sigmoid(Summ);
float Summ3 = Summ2 * 2;
return Summ3;
}
// Output neuron
float Output(float Summ3, float BeginOutput)
{
BeginOutput = Sigmoid(Summ3);
return BeginOutput;
}
// Main function
int main()
{
vector< vector <int> > TrainingData;
vector<int> TrainingData1;
vector<int> TrainingData2;
vector<int> TrainingData3;
vector<int> TrainingData4;
TrainingData1.push_back(1);
TrainingData1.push_back(0);
TrainingData2.push_back(0);
TrainingData2.push_back(1);
TrainingData3.push_back(1);
TrainingData3.push_back(1);
TrainingData4.push_back(0);
TrainingData4.push_back(0);
TrainingData.push_back(TrainingData1);
TrainingData.push_back(TrainingData2);
TrainingData.push_back(TrainingData3);
TrainingData.push_back(TrainingData4);
system("PAUSE");
return 0;
}
float BackProp(float BeginOutput)
{
int ExpectedOutput = XORLogic(vector<int> Input1);
float error = BeginOutput - ExpectedOutput;
}
#包括
#包括
#包括
#包括
使用std::vector;
//预期产量
int XORLogic(向量和输入1,int x)
{
if(std::accumulate(Input1.begin(),Input1.end(),0)==0 | | 2)
{
x=0;
}
else if(std::accumulate(Input1.begin(),Input1.end(),0)==1)
{
x=1;
}
返回x;
}
//西格玛符号
浮子汇总(浮子输入、浮子重量)
{
浮点数总和=1+(重量*输入);
返回总和;
}
//S形函数。
浮点S形(浮点总和)
{
浮点SigmoidOutput=1/(1+exp(-sum));
返回乙状结肠输出;
}
//隐神经元
浮点隐藏(整数x、浮点y、浮点总和)
{
总结(x,y);
浮点总和2=乙状结肠(总和);
浮动总和3=总和2*2;
返回和3;
}
//输出神经元
浮点输出(浮点求和3,浮点开始输出)
{
开始输出=乙状结肠(Summ3);
返回起始输出;
}
//主要功能
int main()
{
向量<向量>训练数据;
向量训练数据1;
向量训练数据2;
向量训练数据3;
向量训练数据4;
培训数据1.推回(1);
训练数据1.向后推_(0);
训练数据2.推回(0);
培训数据2.推回(1);
培训数据3.推回(1);
培训数据3.推回(1);
训练数据4.推回(0);
训练数据4.推回(0);
培训数据。推回(培训数据1);
培训数据。推回(培训数据2);
培训数据。推回(培训数据3);
培训数据。推回(培训数据4);
系统(“暂停”);
返回0;
}
浮动反向支撑(浮动起始输出)
{
int ExpectedOutput=XORLogic(向量输入1);
浮点错误=BeginOutput-ExpectedOutput;
}
对于vector,它表示“类std::vector模板类类型不是
允许“
在Input1上写着“预期的a”)
我做错了什么?为什么不行?啊,对不起,伙计们。
我现在明白了,一个简单的谷歌搜索就可以做到这一点
我不是有意粗鲁,但我很沮丧,因为我不明白你们在评论中给我的答案
如果有人想知道这个问题的答案,这里有一个链接:
有一个好的。您知道如何将参数传递给函数吗?您以前调用过带参数的函数吗?你在
XORLogic
函数中做得很好(当你调用std::acculate
时),为什么不能在调用XORLogic
函数时做呢?我做错了什么?
所有的事情。然后你应该重新开始。如果你不知道怎么游泳,你不会头朝下跳进游泳池的最深处,是吗?这就是你在这里所做的。“你认为这篇文章是在开玩笑吗?”我真的说不出来,代码完全是胡说八道,一个询问/回答特定编程问题的网站也是如此,而不是免费提供辅导。@Maartenww代码不是这样做的。|
是一个布尔逻辑运算符。…..==0和2是布尔真值表的输入。它将始终计算为true
。