C++ 卡在构造函数c+中+;

C++ 卡在构造函数c+中+;,c++,pointers,constructor,C++,Pointers,Constructor,我有一个main函数,它在for循环中创建类模拟的实例,在模拟的构造函数中,有一个for循环,它创建指向总体的指针实例 我的问题是,从输出中,我知道Simulation的构造函数完成了对其Population*向量的向后推,但它似乎并没有真正离开构造函数,因为主循环中的for循环没有继续。 非常感谢 main中的片段: std::vector<Simulation> openSimulations ; for(size_t i(0) ; i < n ; ++i)

我有一个main函数,它在for循环中创建类模拟的实例,在模拟的构造函数中,有一个for循环,它创建指向总体的指针实例

我的问题是,从输出中,我知道Simulation的构造函数完成了对其Population*向量的向后推,但它似乎并没有真正离开构造函数,因为主循环中的for循环没有继续。 非常感谢

main中的片段:

std::vector<Simulation> openSimulations ; 
       for(size_t i(0) ; i < n ; ++i)
       {
           std::cout << "Rounds that should be completed : " << n << std::endl ; 
           std::cout << "Stuck 3 !" << std::endl ;
           openSimulations.push_back(Simulation(f, n, t, p, M, m)) ;
           std::cout << "Finished adding!" << std::endl ; 
       }

大家好,我找到了自己问题的答案

模拟的析构函数制作不当

有了这样的析构函数,它现在可以工作了:

Simulation::~Simulation()
{
    for(auto population: myPopulations)
    {
        population = nullptr ;
        delete population ;
    }
}

我将把问题留在这里,以防任何人遇到相同的问题。

检查复制/移动构造函数,并使用调试器。如果你想在这里得到帮助,你需要把你的代码缩小到一个既能编译又能再现你的问题的最小部分。(实际上,你有一个很好的机会来解决你的问题,试图创建最小的演示)你知道你没有删除任何东西吗?抱歉,但我是新的C++,我没有意识到!你能告诉我怎么正确地做吗?谢谢
Dimitris-MacBook-Pro:CMakeTemp Dimi$ ./Genomics  -n 5 -f 0.2 -f 0.2 -f 0.6 -T 100 -N 100 -A 3  -r 3
Rounds that should be completed : 5
Stuck 3 !
Stuck 6 !
Inside Population::Population
Finished Adding Initial frequencies to Population's attribute
Inside Population::Population
Finished Adding Initial frequencies to Population's attribute
Inside Population::Population
Finished Adding Initial frequencies to Population's attribute
Stuck 7 !
Inside Population::Population
Finished Adding Initial frequencies to Population's attribute
Inside Population::Population
Finished Adding Initial frequencies to Population's attribute
Inside Population::Population
Finished Adding Initial frequencies to Population's attribute
Stuck 7 !
Inside Population::Population
Finished Adding Initial frequencies to Population's attribute
Inside Population::Population
Finished Adding Initial frequencies to Population's attribute
Inside Population::Population
Finished Adding Initial frequencies to Population's attribute
Stuck 7 !
Have exited or loop in Simulation::Simulation!
Finished adding!
Rounds that should be completed : 5
Stuck 3 !
Stuck 6 !
Inside Population::Population
Finished Adding Initial frequencies to Population's attribute
Inside Population::Population
Finished Adding Initial frequencies to Population's attribute
Inside Population::Population
Finished Adding Initial frequencies to Population's attribute
Stuck 7 !
Inside Population::Population
Finished Adding Initial frequencies to Population's attribute
Inside Population::Population
Finished Adding Initial frequencies to Population's attribute
Inside Population::Population
Finished Adding Initial frequencies to Population's attribute
Stuck 7 !
Inside Population::Population
Finished Adding Initial frequencies to Population's attribute
Inside Population::Population
Finished Adding Initial frequencies to Population's attribute
Inside Population::Population
Finished Adding Initial frequencies to Population's attribute
Stuck 7 !
Have exited or loop in Simulation::Simulation!
Simulation::~Simulation()
{
    for(auto population: myPopulations)
    {
        population = nullptr ;
        delete population ;
    }
}