невозможно вызвать функцию для объекта в векторе объектов - PullRequest
0 голосов
/ 29 мая 2020

У меня есть класс под названием AI, у которого есть функция сохранения:

void save(string name) {
       string fileName = "AIs/"+name+".AI";
       ofstream mySave;
       mySave.open(fileName);
       mySave << "id\n" << id << "\n";
       mySave << "pid\n" << pid <<  "\n";
       mySave << "numInpNds\n" << numInpNds << "\n";
       mySave << "numOutNds\n" << numOutNds << "\n";
       mySave << "numLayers\n" << numLayers << "\n";
       mySave << "layerSize\n";
       for (int i = 0; i < numLayers; i++) {
           mySave << layerSize[i] << "\n";
       }
       mySave << "inpLayer\n";
       mySave << nurNet["inpLayer"]<<"\n";
       for (int i = 0; i < numLayers; i++) {
           mySave << "layer"+to_string(i+1)+"Weights\n";
           mySave << nurNet["layer" + to_string(i + 1) + "Weights"] << "\n";
           mySave << "layer" + to_string(i + 1) + "Biases\n";
           mySave << nurNet["layer" + to_string(i + 1) + "Biases"] << "\n";
           mySave << "layer" + to_string(i + 1) << "\n";
           mySave << nurNet["layer" + to_string(i + 1)] << "\n";
       }
       mySave << "outLayerWeights\n";
       mySave << nurNet["outLayerWeights"] << "\n";
       mySave << "outLayerBiases\n";
       mySave << nurNet["outLayerBiases"] << "\n";
       mySave << "outLayer\n";
       mySave << nurNet["outLayer"] << "\n";
       mySave.close();
   }

Это также вектор AI, называемый «AI». Я пытаюсь перебрать этот вектор и сохранить все AI:

        for (int i = 0; i < settings["generationSize"]; i++) {;
           AIs[i].save("AIs/" + to_string(i) + ".AI");
        }

, когда я пытаюсь запустить свой код, он выводит эту ошибку:

binary '[': не найден оператор, который принимает левый операнд типа 'std :: vector' (или нет приемлемого преобразования)

1 Ответ

0 голосов
/ 30 мая 2020

Мне удалось исправить ошибку, переместив определение вектора под определение класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...