C++ 此函数或引用使用的向量是否泄漏内存?

C++ 此函数或引用使用的向量是否泄漏内存?,c++,vector,getline,lexical,C++,Vector,Getline,Lexical,我在清除指向使用此方法的根的指针映射时遇到问题。如果我不用这个,一切都好 我需要将从文件中读取的所需数字量转换为双精度向量 void LoadNumbersFromFile(const std::string fileName, int countToLoad, std::vector<double>& output) { ifstream in("C:\\" + fileName); std::string line="0"; int inde

我在清除指向使用此方法的根的指针映射时遇到问题。如果我不用这个,一切都好

我需要将从文件中读取的所需数字量转换为双精度向量

void LoadNumbersFromFile(const std::string fileName, int countToLoad, std::vector<double>& output)
{


    ifstream in("C:\\" + fileName);

    std::string line="0";
    int index = 0;

    if (in.is_open())
    while(getline(in,line))
    {
        output.push_back(boost::lexical_cast<double>(line));
        index++;
        if (index>=countToLoad) 
            break;
    }
    in.close();

}
我的问题是这个方法会泄漏内存吗


如果是,它是可修复的还是我们有其他选择?

不,它不会泄漏内存,除非您的标准库或boost实现中有错误。我觉得很好。但是您的待办事项列表:1重复调用push_back对于std::vector不是一件好事。2检查ifstream析构函数是否在必要时调用close;以防在while循环中引发异常。也就是说,您实际上不需要调用in.close。你可以删除那条线路。为什么你认为有内存泄漏?如果可能的话,打电话给reserve。