回答編集履歴

2

文言修正

2020/07/03 19:01

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -76,7 +76,7 @@
76
76
 
77
77
  {
78
78
 
79
- out << "左辺のx座標" << r.lx->x << " 右辺のx座標" << r.rx->x << "下辺のx座標" << r.dy->y << "上辺のx座標" << r.uy->y;
79
+ out << "左辺のx座標" << r.lx->x << " 右辺のx座標" << r.rx->x << "下辺のy座標" << r.dy->y << "上辺のy座標" << r.uy->y;
80
80
 
81
81
  return out;
82
82
 

1

コード追記

2020/07/03 19:01

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -37,3 +37,71 @@
37
37
  }
38
38
 
39
39
  ```
40
+
41
+
42
+
43
+ ---
44
+
45
+
46
+
47
+ > 反復子itを長方形のメンバとしたい
48
+
49
+
50
+
51
+ `Rectangle`のメンバを`std::vector<Point>::iterator`にしたいということでしょうか?
52
+
53
+ x,y両方へアクセスできるのでバグの原因となりそうですが…
54
+
55
+ ```C++
56
+
57
+ struct Rectangle
58
+
59
+ {
60
+
61
+ std::vector<Point>::iterator lx;
62
+
63
+ std::vector<Point>::iterator rx;
64
+
65
+ std::vector<Point>::iterator dy;
66
+
67
+ std::vector<Point>::iterator uy;
68
+
69
+ };
70
+
71
+
72
+
73
+ //Rectangleに対する出力用の演算子
74
+
75
+ std::ostream& operator<<(std::ostream& out, Rectangle r)
76
+
77
+ {
78
+
79
+ out << "左辺のx座標" << r.lx->x << " 右辺のx座標" << r.rx->x << "下辺のx座標" << r.dy->y << "上辺のx座標" << r.uy->y;
80
+
81
+ return out;
82
+
83
+ }
84
+
85
+
86
+
87
+ //点集合の包囲長方形を計算する関数
88
+
89
+ Rectangle bounding_rectangle(std::vector<Point>& points)
90
+
91
+ {
92
+
93
+ Rectangle it;
94
+
95
+ it.lx = std::min_element(points.begin(), points.end(), compare_x); //左辺のx座標
96
+
97
+ it.rx = std::max_element(points.begin(), points.end(), compare_x); //右辺のx座標
98
+
99
+ it.dy = std::min_element(points.begin(), points.end(), compare_y); //下辺のy座標
100
+
101
+ it.uy = std::max_element(points.begin(), points.end(), compare_y); //上辺のy座標
102
+
103
+ return it;
104
+
105
+ }
106
+
107
+ ```