#pragma once
#include <vector>
#include "Neuron.h"
class Layer : public std::vector < Neuron >
{
private:
bool m_hasBiasNeuron = false;
public:
Layer(size_t numNeurons);
void setOutputValues(const std::vector<double> & outputValues);
void feedForward(const Layer &inputLayer);
double getWeightedSum(size_t outputNeuron) const;
void connectTo(const Layer &nextLayer);
void updateInputWeights(Layer &prevLayer);
void addBiasNeuron();
bool hasBiasNeuron() const;
size_t sizeWithoutBiasNeuron() const;
};