**已关闭。**此问题需要debugging details。当前不接受答案。
编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
11小时前关门了。
Improve this question
我是C++和StackOverflow的新手,所以如果这让任何人感到困扰,我很抱歉。我目前有3个类,其中一个包含另一个类的对象向量作为示例变量。我试图让第三个类中的一个函数使用迭代器修改向量,但由于我没有通过引用传递向量,我不知道如何永久修改向量,因为它是另一个类的示例变量。
我现在有for (std::vector<Slot>::iterator ptr = tree.slots.begin(); ptr != tree.slots.end(); ptr++)
作为我的迭代器,我想修改ptr引用的Slot对象,树类包含了slot的向量,但是我不知道如何修改Slots对象。
作为参考,我有一个类“out”,一个类“tree”和一个类“slot”。“out”类包含了我想修改属于“tree”函数的slot向量的函数。现在,我尝试做的是:
void modify() {
Slot tempSlot;
int tag = input;
for (std::vector<Slot>::iterator ptr = tree.slots.begin(); ptr != tree.slots.end(); ptr++) {
tempSlot = *ptr;
if (tempSlot.valid == true && tempSlot.tag == tag) {
tempSlot.time = 0;
*ptr = tempSlot;
return;
}
}
}
但这似乎不起作用。谢谢你的帮助!
1条答案
按热度按时间p5cysglq1#
检查变量“tempSlot.time = 0”是否在类中声明为私有或公共,仅允许更改公共变量,如果是私有变量,请在类中包含setter方法以修改对象