回答編集履歴
3
追記:ouput
answer
CHANGED
@@ -38,4 +38,9 @@
|
|
38
38
|
func_max(&v);
|
39
39
|
getchar();
|
40
40
|
}
|
41
|
-
```
|
41
|
+
```
|
42
|
+
// output
|
43
|
+
sort:3
|
44
|
+
max element id=2
|
45
|
+
max element (hairetsu):3
|
46
|
+
max element (pointer):3
|
2
追記
answer
CHANGED
@@ -3,6 +3,9 @@
|
|
3
3
|
[C++ 値渡し、ポインタ渡し、参照渡しを使い分けよう](https://qiita.com/agate-pris/items/05948b7d33f3e88b8967)
|
4
4
|
|
5
5
|
追記:
|
6
|
+
余談ですが関数名max()はstd::maxと被るので避けたほうが良いと思います。
|
7
|
+
回答が読みやすくなるようにあえてusing namespace std;を使用しています。
|
8
|
+
|
6
9
|
```C++
|
7
10
|
#include <bits/stdc++.h>
|
8
11
|
using namespace std;
|
1
追記:コード比較
answer
CHANGED
@@ -2,11 +2,24 @@
|
|
2
2
|
|
3
3
|
[C++ 値渡し、ポインタ渡し、参照渡しを使い分けよう](https://qiita.com/agate-pris/items/05948b7d33f3e88b8967)
|
4
4
|
|
5
|
-
|
5
|
+
追記:
|
6
6
|
```C++
|
7
7
|
#include <bits/stdc++.h>
|
8
8
|
using namespace std;
|
9
9
|
|
10
|
+
// import vector v
|
11
|
+
void func_max(vector<int>* v) {
|
12
|
+
// max_element::
|
13
|
+
vector<int>::iterator itr_max = max_element(v->begin(), v->end());
|
14
|
+
|
15
|
+
// size_t min_index = std::distance(v.begin(), itr_min);
|
16
|
+
size_t max_index = distance(v->begin(), itr_max);
|
17
|
+
|
18
|
+
cout << "max element id=" << max_index << endl;
|
19
|
+
cout << "max element (hairetsu):" << v->at(max_index) << endl;
|
20
|
+
cout << "max element (pointer):" << *itr_max << endl;
|
21
|
+
}
|
22
|
+
|
10
23
|
int func(vector<int>* v) {
|
11
24
|
int result = 0;
|
12
25
|
if (!v->empty()) {
|
@@ -15,9 +28,11 @@
|
|
15
28
|
}
|
16
29
|
return result;
|
17
30
|
}
|
31
|
+
|
18
32
|
int main() {
|
19
|
-
vector<int> v({
|
33
|
+
vector<int> v({3, 2, 1});
|
20
|
-
cout << func(&v) << endl;
|
34
|
+
cout << "sort:" << func(&v) << endl;
|
35
|
+
func_max(&v);
|
21
36
|
getchar();
|
22
37
|
}
|
23
38
|
```
|