回答編集履歴
2
修正
answer
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
> void sort_input(vector<int> *a){
|
2
2
|
|
3
3
|
まず、`sort_input`関数への`vector`オブジェクトの渡し方に誤りがあります。ポインタ渡しではなく参照で渡してください。ポインタで渡しているため、まったく見当違いの処理になってしまい、アクセス違反が発生しているものと思われます。
|
4
|
-
参照渡しは`&a
|
4
|
+
参照渡しは`&a`と書きます。参照渡しした変数は通常の変数と同様`a.size()`のようにピリオドでメンバを指定してください。
|
5
5
|
C++では、ポインタ渡しでなければ困る理由がない限り、参照渡しにしてください。
|
6
6
|
|
7
7
|
変数`temp`は`vector`ではなく、配列の要素である`int`型で定義してください(引数をポインタ渡しにしているためおかしなことになっています)。
|
1
文言訂正・追記
answer
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
> void sort_input(vector<int> *a){
|
2
2
|
|
3
3
|
まず、`sort_input`関数への`vector`オブジェクトの渡し方に誤りがあります。ポインタ渡しではなく参照で渡してください。ポインタで渡しているため、まったく見当違いの処理になってしまい、アクセス違反が発生しているものと思われます。
|
4
|
+
参照渡しは`&a'と書きます。参照渡しした変数は通常の変数と同様`a.size()`のようにピリオドでメンバを指定してください。
|
4
|
-
|
5
|
+
C++では、ポインタ渡しでなければ困る理由がない限り、参照渡しにしてください。
|
5
6
|
|
6
7
|
変数`temp`は`vector`ではなく、配列の要素である`int`型で定義してください(引数をポインタ渡しにしているためおかしなことになっています)。
|
7
8
|
|
@@ -9,7 +10,7 @@
|
|
9
10
|
|
10
11
|
> for (t = 0; t < a->size(); t++){
|
11
12
|
|
12
|
-
二つの値を比較しながらループを進めるため、外側のループは、最後の要素の1個手前になるようにします。`t < a
|
13
|
+
二つの値を比較しながらループを進めるため、外側のループは、最後の要素の1個手前になるようにします。`t < a.size() - 1`としてください。
|
13
14
|
|
14
15
|
> for(u = a->size() - 1; u > t - 1; u++)
|
15
16
|
|