【发布时间】:2014-09-25 21:13:20
【问题描述】:
我有一个类和该类元素的向量。我需要在向量的特定位置插入新对象,但我什至无法访问我想要的位置。我试图打印我的迭代器,但它不工作......我用整数向量测试了迭代器,它工作正常,但我无法让它与我自己的类一起工作......我错过了什么?
ToDo individualTask;
vector<ToDo> myToDoList;
vector<ToDo>::iterator it;
myToDoList.push_back(individualTask);
cout << myToDoList.size() << endl;
myToDoList.resize(10);
for (it = myToDoList.begin(); it != myToDoList.end(); ++it) {
cout << *it << endl; // not working
}
我试过 *it->toString() 它说我的类没有 toString 方法
【问题讨论】:
-
您需要为您的类创建 toString,它在默认情况下不存在(与 Java 或 C# 不同)与运算符
-
你能
cout一个ToDo对象吗?此外,resize可能会使迭代器无效。 -
这是我的课。我想创建一个“ToDo”对象的向量并访问这些元素,我只是想打印迭代器来检查,我的目标是插入向量的特定位置。
-
@inessadl - 如果您的
ToDo类没有operator <<,则该代码无法编译。 -
你必须为你的班级重载
operator<<。查看operator overloading 了解更多信息。