我需要以独特的方式更新C ++中的指针向量

时间:2016-10-23 19:34:39

标签: c++ pointers vector updating

所以我有一个指向我定义的类的指针向量。我有一个函数,它获取指针的0索引并返回它。之后我需要删除该索引中的数据,然后将该项放在向量的最后一个索引中并将其放入0索引中。到目前为止,我只是将指针设置为NULL,如果我返回它们,然后我推回向量中的最终对象,最后将其弹回。我不确定这种方法是否是解决我问题的最佳方法。这是我的代码:

Instrument* loanOut() {
for (int i = 0, i < library.size(), i++) {
        if (library[i] != NULL) {
            return library[i];
        }
        else {
            return NULL;
        }
    }
    library[0] = NULL;
    library.push_back(library[library.size()]);

}

1 个答案:

答案 0 :(得分:0)

在算法上,这就是你所描述的:

Object PopFrontAndReplace(std::vector<Object>& objects) {
    if (!objects.size()) {return Object();}
    Object o = objects[0];
    objects[0] = objects.back();
    objects.pop_back();
    return o;
}

这会回答这个问题吗?