【问题标题】:unable to call a function on an object in a vector of objects无法对对象向量中的对象调用函数
【发布时间】:2020-05-29 15:05:48
【问题描述】:

我有一个名为 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 '[': no operator found 接受'std::vector' 类型的左操作数(或者没有 可接受的转换)

【问题讨论】:

  • 对向量使用迭代器。在你的 for 循环中访问你的向量:AIs.begin() + i。但最好在 for 循环中指明 AIs.size(),因为设置中的大小可能不同,然后会出现运行时异常。
  • 旁白:看起来您将保存名为“AIs/AIs/1.AI.AI”的文件

标签: c++ class vector


【解决方案1】:

我设法通过将矢量定义移到类定义下方来修复错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-28
    • 2019-07-04
    • 2021-12-31
    • 2011-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多