gpt4 book ai didi

c++ - 在 C++ 中重用 vector

转载 作者:IT老高 更新时间:2023-10-28 22:34:41 28 4
gpt4 key购买 nike

我有一个声明为全局变量的 vector ,我需要能够重用它。例如,我正在读取多个数据文件,解析数据以创建对象,然后将这些对象存储在 vector 中。

vector<Object> objVector(100);

void main()
{
while(THERE_ARE_MORE_FILES_TO_READ)
{
// Pseudocode
ReadFile();
ParseFileIntoVector();
ProcessObjectsInVector();
/* Here I want to 'reset' the vector to 100 empty objects again */

}
}

我可以重置vector吗?成为 vector<Object> objVector(100)因为它最初是在堆栈上分配的?如果我这样做 objVector.clear() ,它会删除所有 100 个对象,我会得到一个大小为 0 的 vector 。我需要它在每个循环开始时的大小为 100。

最佳答案

I have a vector declared as a global variable that I need to be able to reuse.

为什么?从您的代码中不清楚为什么变量必须是全局的。为什么你不能在循环中声明它inside?那就不用重新设置了,每次循环都会自动完成。

为了从其他方法访问变量,请将其作为参数传递(通过引用,因此您可以修改它)。拥有一个全局变量很少是一个好的解决方案。

其他东西:main 必须从不有返回类型 void,这是无效的 C++,许多编译器会拒绝它。

关于c++ - 在 C++ 中重用 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2426967/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com