我注意到G ++编译器允许初始化这样的数组:
vector<vector<string> > partition(string s) {
const int len = s.size();
vector<vector<string> > subPalins[len+1] ;
subPalins[0] = vector<vector<string> >();
subPalins[0].push_back(vector<string>());
bool isPalin[len][len];
...
return subPalins[len];
}
数组subPalins的大小是len,它是一个常量变量。我记得不允许初始化可变大小的数组,因为必须在编译时确定数组的大小。虽然这里的len是常数,但它仍然是一个变量,我不明白为什么允许这样做。