[英]Save from Vector of int to 2D array
我有這個int向量,必須將值保存到2D數組中。我雖然很簡單,但是對於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;
}
您希望通過alphabet.size()
來縮放i
索引,以考慮已添加的行:
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 * alphabet.size() + j);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.