我有一个通过读取数据文件在 main 中创建的类对象向量。然后,我将向量传递到几个不同的文件,其中包含对向量执行不同操作的函数(按不同字段排序、减去库存等)。当我尝试使用时遇到问题push_back
在创建矢量后将其添加到另一个文件(同一项目的一部分)中。预先存在的向量被传递给函数,并且向量被成功添加到函数内,但是当我退出函数时,添加的记录不再存在,并且据我所知,我应该访问更新的记录从不同文件中的所有不同函数向前的向量,对吗?如果更新后的向量与我在 main 中创建的向量同名,我就不必将其传回,不是吗?我确信我使用的语言和术语是错误的(请随时纠正我),但这几乎就像矢量没有全局更新,而只是在调用期间在函数内进行本地更新。
这是我要添加到向量的函数中的函数定义和代码(为了简洁起见,我跳过了所有变量参数分配)。我指向的所有函数都是类中的 setter 函数,在此之前向量已经包含 20 条记录,并且设置与以下函数类似。
void addBook(vector<BookData> books)
{
BookData *books1;
books1 = new BookData;
books1->setTitle(bookTitle);
books1->setAuthor(author);
books1->setPub(publisher);
books1->setIsbn(isbn);
books1->setWholesale(wholesale);
books1->setRetail(retail);
books1->setQty(qtyOnHand);
books1->setDateAdded(dateAdded);
books.push_back(*books1);
}
我不想在帖子中充斥太多代码,但如果有帮助的话我可以发布更多代码。我只是希望在整个程序中可以访问添加(或在另一个函数中进行的删除)。
您应该通过引用传递向量来修改原始全局向量。
void addBook(vector<BookData>& books)
^^^
否则,您将原始向量的副本传递给函数并修改它而不是全局版本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)