无法为地图的begin()函数分配迭代器,为什么会这样?

时间:2019-08-15 21:14:33

标签: c++ dictionary iterator

我正在按照维基百科的说明进行迭代器分配。但是,它并没有让我出错,但出现了一些错误:

  

没有运算符“ =”与这些操作数匹配

     

二进制'=':未找到采用类型为右侧的操作数的运算符   'std :: _ Tree_const_iterator >>'   (或没有可接受的转化)

这是我的单个功能:

void InventorySystem::exportArchive(string binaryLocation) const{
    ofstream file(binaryLocation.c_str()); // .c_str() returns the C-string version of the string object. Required to open the file if you stored the name in a string. 

    file << inventory.size() << endl;

    map<int, Part*>::iterator it;
    it = inventory.begin(); // The error takes place here <----

    file.close();
}

这就是我的.h中的内容:

class InventorySystem {
public:
    InventorySystem() {};
    bool insert(Part& a);
    Part* find(int id);
    void exportArchive(string binaryLocation) const;
private:
    map <int, Part*> inventory; // Where inventory variable comes into play <----
};

这是怎么回事?为什么我什至不能将迭代器分配给“库存”变量映射的开头?

0 个答案:

没有答案