回答編集履歴

2

追記

2017/03/26 01:13

投稿

episteme
episteme

スコア16614

test CHANGED
@@ -135,3 +135,69 @@
135
135
 
136
136
 
137
137
  ```
138
+
139
+
140
+
141
+ > 人数分、順番[プレイヤーID]に、自分のスコアより大きいスコアを持つ人数+1をセット
142
+
143
+ なら上記コードの**順位づけ**の部分を
144
+
145
+
146
+
147
+ ```
148
+
149
+ for_each(begin(data), end(data),
150
+
151
+ [&](R& item) {
152
+
153
+ item.rank = static_cast<int>(count_if(begin(data), end(data),
154
+
155
+ [&](const R& t) { return t.score > item.score; }));
156
+
157
+ });
158
+
159
+ ```
160
+
161
+
162
+
163
+ この場合実行結果は:
164
+
165
+
166
+
167
+ ```
168
+
169
+ id rank score
170
+
171
+ 0 1 29
172
+
173
+ 1 44 15
174
+
175
+ 2 1 29
176
+
177
+ 3 52 13
178
+
179
+ 4 96 0
180
+
181
+ 5 10 27
182
+
183
+ 6 92 1
184
+
185
+ 7 1 29
186
+
187
+ 8 92 1
188
+
189
+ 9 25 21
190
+
191
+ 10 52 13
192
+
193
+ 11 22 22
194
+
195
+ 12 79 5
196
+
197
+ 13 75 6
198
+
199
+ ...
200
+
201
+ ```
202
+
203
+

1

追記

2017/03/26 01:12

投稿

episteme
episteme

スコア16614

test CHANGED
@@ -89,3 +89,49 @@
89
89
  }
90
90
 
91
91
  ```
92
+
93
+
94
+
95
+ 実行結果はこんな↓
96
+
97
+ ```
98
+
99
+ id rank score
100
+
101
+ 66 1 30
102
+
103
+ 0 2 29
104
+
105
+ 2 2 29
106
+
107
+ 32 2 29
108
+
109
+ 7 2 29
110
+
111
+ 44 6 28
112
+
113
+ 42 6 28
114
+
115
+ 72 6 28
116
+
117
+ 21 6 28
118
+
119
+ 89 6 28
120
+
121
+ 5 11 27
122
+
123
+ 45 12 26
124
+
125
+ 69 12 26
126
+
127
+ 50 12 26
128
+
129
+ 41 12 26
130
+
131
+ 98 16 25
132
+
133
+ 74 16 25
134
+
135
+
136
+
137
+ ```