c++ 当函数中的向量是类的示例变量时,如何修改它?[已关闭]

ecbunoof  于 2023-03-14  发布在  其他
关注(0)|答案(1)|浏览(142)

**已关闭。**此问题需要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;
        }
     }
}

但这似乎不起作用。谢谢你的帮助!

p5cysglq

p5cysglq1#

检查变量“tempSlot.time = 0”是否在类中声明为私有或公共,仅允许更改公共变量,如果是私有变量,请在类中包含setter方法以修改对象

相关问题