向量超出范围c ++初始化

时间:2015-02-21 02:31:28

标签: c++ vector

一直试图找出为什么我似乎无法让2d矢量正常工作。试过这个,它只有在我将矢量矢量作为局部变量初始化时才有效。否则我会超出范围错误。

vector <string> allSymbols;

std::vector<std::vector<bool>> wholeMap(allSymbols.size(), std::vector<bool>(allTerms.size() + 2));

void fillWholeMap()
{


    cout << allSymbols.size() << endl;
    cout << allTerms.size() << endl;
    for (int i = 0; i < allSymbols.size(); i++)
    {
        for (int j = 0; j < allTerms.size() + 2; j++)
        {
            wholeMap[i][j]=false;
        }
    }
}

1 个答案:

答案 0 :(得分:0)

即使在调用main()之前,也会初始化全局变量。当您将wholeMap创建为全局变量时,它的初始化大小为0。这是因为当时allSymbols的大小为0。