for (int i = 0; i < 10; i++)
{
nueron temp; // my Class
_inputNuerons.push_back(temp); // _inputNuerons is a std::vector
}
据我所知,C++ 在到达 for 循环的 } 括号时释放临时对象。 但是将对象存储在 std::vector 中是否会使该对象稍后在程序中可用? 现在,当我尝试访问 for loop 之外的“temp”nueron 时,程序崩溃了。
如何将我的对象存储在 std::vector 中以便稍后使用?
最佳答案
你的神经元对象将在 for block 的末尾被销毁。 您应该使用动态分配,并将指向该对象的指针存储在 vector 中。
for (int i = 0; i < 10; i++)
{
nueron* temp = new neuron(); // my Class
_inputNuerons.push_back(temp); // _inputNuerons is a std::vector
}
_inputNeurons 集合应该是神经元指针的集合。
关于c++ - 将对象存储在 std::vector 中会增加对象的生命周期吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31081850/