0
我有這個向量的int從中我必須將值保存到一個二維數組。我雖然很直接,但看起來對於i+j
,當j
變成0
時,下一個要保存的整數保存在最後一個整數上。它們重疊。你能告訴我如何解決它嗎?下面是代碼:從向量保存到二維數組
vector<int> temp_table;//filled it in previous code, just for info
int** arr_table =new int* [number_of_states];
for(int i = 0; i < number_of_states; i++)
{
arr_table[i] = new int[alphabet.size()];
}
for(int i=0;i<number_of_states;i++)
{
for(int j=0;j<alphabet.size();j++)
{
arr_table[i][j]=temp_table.at(i+j);//This is where the overlapping occurs
//when j=0.How to fix it to save the correct data?
}
}
for(int i=0;i<number_of_states;i++)
{
for(int j=0;j<alphabet.size();j++)
{
cout<<arr_table[i][j]<<" ";
}
cout<<endl;
}
你的索引'temp_table'將是什麼像'(i * alphabet.size())+ j'。這取決於數據如何存儲在1d矢量中。 –