在c ++

时间:2016-12-10 22:16:41

标签: c++ vector

作为模拟的一部分,我目前正在迭代大型对象向量,寻找具有属性的对象。在我看来,将这些对象的地址存储在另一个指针向量中会更快,直到我不再需要对它们进行操作...示例代码看起来像这样...我不确定擦除部分。

public:
    bool studying = false;
    void study();
};
void student::study()
{
    //Read a book
    studying = false;
};

int vector_question_main(int argc, char* argv[])
{
    std::vector<student> masterList;
    std::vector<student*> studyingList;

    student lazy1;
    student good1;
    good1.studying = true;

    student* s = &masterList.at(1);
    studyingList.push_back(s);

    for (int i = 0; i < studyingList.size(); i++)
    {
        studyingList.at(i)->study();
        if (studyingList.at(i)->studying == false)
        {
            studyingList.erase(i);
        }
    }


}

我是在正确的轨道上还是有更好的&#34;办法?为了帮助定义我的情况,我事先不知道我有多少物品或需要跟踪多少物体。我将需要迭代并对它们进行操作分配。

编辑: 感谢您的初步回复。

@PaulMcKenzie 到目前为止,我需要从我的对象集合中获得的硬性要求/陈述是......

  • 由于想要添加/删除对象,它很容易重新调整大小 频繁。
  • 我可以遍历集合(无特定顺序)执行 一些动作,例如获取/设置属性或调用方法。
  • 对象方法仅对其自己的属性执行某些操作 基于自己的属性或参数。

我预计未来的要求是我只想迭代一个较小的子集。过早优化。谢谢@Jack Deeth

0 个答案:

没有答案