声明列表c ++时的std :: bad_alloc

时间:2017-01-06 18:26:56

标签: c++

我尝试使用列表并创建包含整数的列表列表。 运行代码后,它会导致一个错误的alloc异常:

" aterminate在抛出' std :: bad_alloc'的实例后调用   what():std :: bad_alloc

此应用程序已请求Runtime以不寻常的方式终止它。 请联系应用程序的支持团队以获取更多信息。"

#include <iostream>
#include <list>
#include <string>

int main() {
    std::list<int> l{1,2,3,4};//
    std::list<int> l1{5,6,7,8};
    std::list<std::list<int>> ll;// list of lists<int>
    std::cout << "a"; //does not reach here, terminated before this row
    ll.push_back(l);
    ll.push_back(l1);
    std::list<std::list<int>>::iterator itr;
    for (itr=ll.begin(); itr != ll.end(); itr++)
    {
        std::list<int>tl=*itr;
        std::list<int>::iterator it;
        for (it=tl.begin(); it != tl.end(); it++)
        {
            std::cout<<*it;
        }
        std::cout<<std::endl<<"End"<<std::endl;
    }
    return 0;
}

我使用minGW在Windows 10上在Clion中运行它。 我怎样才能解决这个问题?一切似乎都正确。

1 个答案:

答案 0 :(得分:0)

我在Visual Studio 2015中编译了您的代码。您的代码编译时没有错误,输出如下。

A1234

结束

5678

结束