gpt4 book ai didi

c++ - 在函数类中使用 push_back 更新指针 vector 的大小

转载 作者:行者123 更新时间:2023-11-28 06:47:01 25 4
gpt4 key购买 nike

我在函数类中使用类 vector 的 push_back 时遇到问题。

我的代码是[所有变量都是葡萄牙语,抱歉]:

我的主要:

int main(int argc, char* argv[])
{

//blah blah before here...

vector <C_Aerogerador*> ptrAerogeradores;

//the following lines are just for example
int size = 4;
for (int i = 0; i < size; i++)
{
ptrAerogeradores.push_back(new C_Aerogerador);
}

//OK, now I have a vector of pointer with size 4

//Creating an object of C_Aerogerador to call a function Class of C_Aerogerador
C_Aerogerador * teste = new C_Aerogerador;

teste->carregaConfig(ptrAerogeradores);

//PROBLEM! After the calling of the function carregaConfig the
// size of ptrAerogeradores is still 4

}

C_Aerogerador´Class 的函数 carregaConfig 是:

void C_Aerogerador::carregaConfig(vector <C_Aerogerador*> ptrAerogerador)
{

//blah blah, setting some values in ptrAerogerador
// example:
ptrAerogerador[0]->areaVarrida = 5;

//after adding some values I want to push back the ptrAerogerador
ptrAerogerador.push_back(new C_Aerogerador);
// It didn't work.
}

最佳答案

更改您的函数签名以引用此vector

void C_Aerogerador::carregaConfig(vector <C_Aerogerador*>& ptrAerogerador);
// ^ Note

否则,您只是在函数参数堆栈上更改原始 vector 的拷贝。

关于c++ - 在函数类中使用 push_back 更新指针 vector 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24789485/

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