其他分享
首页 > 其他分享> > c – 为什么从函数返回向量是可以的?

c – 为什么从函数返回向量是可以的?

作者:互联网

请考虑此代码.我已经多次看过这种类型的代码了.单词是本地向量.如何从函数中返回它?我们可以保证它不会死吗?

 std::vector<std::string> read_file(const std::string& path)
 {
    std::ifstream file("E:\\names.txt");

    if (!file.is_open())
    {
        std::cerr << "Unable to open file" << "\n";
        std::exit(-1);
    }

    std::vector<string> words;//this vector will be returned 
    std::string token;

    while (std::getline(file, token, ','))
    {
        words.push_back(token);
    }

    return words;
}

解决方法:

Can we guarantee it will not die?

只要没有返回引用,这样做就完全没问题了.单词将被移动到接收结果的变量.

局部变量将超出范围.移动(或复制)后.

标签:c,scope,vector,stl,standard-library
来源: https://codeday.me/bug/20190917/1809015.html