###前提・実現したいこと
vectorを用いて行列の回転をおこないたいです.
具体的には
1 2 3
4 5 6
となっている行列を
4 1
5 2
3 6
としたいです.
###発生している問題・エラーメッセージ
invalid memory referenceと表示されます.
###質問
上記のエラーを回避し,回転を実装するにはどうすればよいでしょうか.
また,関数rot_90の宣言方法はこれであっているでしょうか.
###該当のソースコード
cpp
1#include <iostream> 2#include <vector> 3 4using namespace std; 5vector<vector<int>> rot_90(vector<vector<int>> IMAGE, int x_size, int y_size){ 6 vector<vector<int>> rot(y_size, vector<int> (x_size)); 7 vector<int> tmp(y_size); 8 int i; 9 int j; 10 for(j = 0; j < x_size; j++){ 11 for (i = 0; i < y_size; i++){ 12 tmp[i] = IMAGE[y_size-i-1][j]; 13 } 14 for(i = 0; i < y_size; i++){ 15 rot[j][i] = tmp[i]; 16 } 17 } 18 return rot; 19} 20 21int main(void){ 22 vector<vector<int>> img{{1, 2, 3}, {4, 5, 6}}; 23 vector<vector<int>> ans; 24 ans = rot_90(img, 3, 2); 25 int i, j; 26 for (i = 0; i < 3; i++){ 27 for (j = 0; j < 2; j++){ 28 cout << ans[i][j] << endl; 29 } 30 } 31}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/05/30 06:49