一直试图找出为什么我似乎无法让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;
}
}
}
答案 0 :(得分:0)
即使在调用main()
之前,也会初始化全局变量。当您将wholeMap
创建为全局变量时,它的初始化大小为0。这是因为当时allSymbols
的大小为0。