回答編集履歴

3

追記:ouput

2020/09/04 08:43

投稿

mjk
mjk

スコア303

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

追記

2020/09/04 08:43

投稿

mjk
mjk

スコア303

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

追記:コード比較

2020/09/04 08:38

投稿

mjk
mjk

スコア303

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({1, 2, 3});
33
+ vector<int> v({3, 2, 1});
20
- cout << func(&v) << endl; // 3
34
+ cout << "sort:" << func(&v) << endl;
35
+ func_max(&v);
21
36
  getchar();
22
37
  }
23
38
  ```