C++的map中key的排序方式

本文详细解析了在特定场景下,使用map处理用户ID时,排序方式的独特机制,揭示了字符串比较背后的逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用到一个map, key-value中的key和value都是string类型。

 

观察一下,map是这样处理key的排序的,如末尾附表1所示。


注意到,上面的user ID的排序方式很奇特。不是自然数序列1,2,3,4,5,而是1, 10, 100, 101,102。

我猜,是map把1理解为了1XX,10理解为了10X。并且认为X比0小。

这样就有1XX<10X<100<101<102...

也即是说,1<10<100<101<102...

 

不知道内在的机制是什么。。。

从评论来看,内在机制就是字符串比较的机制吧。

也即是说,1<10<100<101<102,就是字符串进行比较的一种机制。


-------------------------------------------------附表1------------------------------------------------------------

user ID 1 -> 272 movies
user ID 10 -> 184 movies
user ID 100 -> 59 movies
user ID 101 -> 67 movies
user ID 102 -> 216 movies
user ID 103 -> 29 movies
user ID 104 -> 111 movies
user ID 105 -> 23 movies
user ID 106 -> 64 movies
user ID 107 -> 22 movies
user ID 108 -> 33 movies
user ID 109 -> 234 movies
user ID 11 -> 181 movies
user ID 110 -> 133 movies
user ID 111 -> 24 movies
user ID 112 -> 46 movies
user ID 113 -> 51 movies
user ID 114 -> 48 movies
user ID 115 -> 92 movies
user ID 116 -> 143 movies
user ID 117 -> 86 movies
user ID 118 -> 71 movies
user ID 119 -> 181 movies
user ID 12 -> 51 movies
user ID 120 -> 26 movies
user ID 121 -> 74 movies
user ID 122 -> 61 movies
user ID 123 -> 54 movies
user ID 124 -> 24 movies
user ID 125 -> 182 movies
user ID 126 -> 45 movies
user ID 127 -> 23 movies
user ID 128 -> 184 movies
user ID 129 -> 30 movies
user ID 13 -> 636 movies
user ID 130 -> 353 movies
user ID 131 -> 30 movies
user ID 132 -> 22 movies
user ID 133 -> 26 movies
user ID 134 -> 25 movies
user ID 135 -> 55 movies
user ID 136 -> 35 movies
user ID 137 -> 47 movies
user ID 138 -> 51 movies
user ID 139 -> 24 movies
user ID 14 -> 98 movies
user ID 140 -> 21 movies
user ID 141 -> 107 movies
user ID 142 -> 33 movies
user ID 143 -> 20 movies
user ID 144 -> 206 movies
user ID 145 -> 316 movies
user ID 146 -> 29 movies
user ID 147 -> 20 movies
user ID 148 -> 65 movies
user ID 149 -> 36 movies
user ID 15 -> 104 movies
user ID 150 -> 32 movies
user ID 151 -> 307 movies
user ID 152 -> 106 movies
user ID 153 -> 23 movies
user ID 154 -> 51 movies
user ID 155 -> 22 movies
user ID 156 -> 37 movies
user ID 157 -> 51 movies
user ID 158 -> 173 movies
user ID 159 -> 107 movies
user ID 16 -> 140 movies
user ID 160 -> 120 movies
user ID 161 -> 58 movies
user ID 162 -> 42 movies
user ID 163 -> 23 movies
user ID 164 -> 63 movies
user ID 165 -> 30 movies
user ID 166 -> 20 movies
user ID 167 -> 69 movies
user ID 168 -> 69 movies
user ID 169 -> 37 movies
user ID 17 -> 28 movies
user ID 170 -> 22 movies
user ID 171 -> 28 movies
user ID 172 -> 27 movies
user ID 173 -> 43 movies
user ID 174 -> 177 movies
user ID 175 -> 38 movies
user ID 176 -> 63 movies
user ID 177 -> 115 movies
user ID 178 -> 273 movies
user ID 179 -> 42 movies
user ID 18 -> 277 movies
user ID 180 -> 63 movies
user ID 181 -> 435 movies
user ID 182 -> 28 movies
user ID 183 -> 53 movies
user ID 184 -> 251 movies
user ID 185 -> 48 movies
user ID 186 -> 92 movies
user ID 187 -> 56 movies
user ID 188 -> 112 movies
user ID 189 -> 187 movies
user ID 19 -> 20 movies
user ID 190 -> 59 movies
user ID 191 -> 27 movies
user ID 192 -> 35 movies
user ID 193 -> 121 movies
user ID 194 -> 305 movies
user ID 195 -> 96 movies
user ID 196 -> 39 movies
user ID 197 -> 118 movies
user ID 198 -> 181 movies
user ID 199 -> 40 movies
user ID 2 -> 62 movies
user ID 20 -> 48 movies
user ID 200 -> 216 movies
user ID 201 -> 386 movies
user ID 202 -> 20 movies
user ID 203 -> 43 movies
user ID 204 -> 42 movies
user ID 205 -> 22 movies
user ID 206 -> 64 movies
user ID 207 -> 230 movies
user ID 208 -> 33 movies
user ID 209 -> 33 movies
user ID 21 -> 179 movies
user ID 210 -> 132 movies
user ID 211 -> 37 movies
user ID 212 -> 25 movies
user ID 213 -> 126 movies
user ID 214 -> 128 movies
user ID 215 -> 93 movies
user ID 216 -> 131 movies
user ID 217 -> 76 movies
user ID 218 -> 53 movies
user ID 219 -> 28 movies
user ID 22 -> 128 movies
user ID 220 -> 22 movies
user ID 221 -> 146 movies
user ID 222 -> 387 movies
user ID 223 -> 105 movies
user ID 224 -> 141 movies
user ID 225 -> 27 movies
user ID 226 -> 50 movies
user ID 227 -> 58 movies
user ID 228 -> 21 movies
user ID 229 -> 30 movies
user ID 23 -> 151 movies
user ID 230 -> 133 movies
user ID 231 -> 21 movies
user ID 232 -> 93 movies
user ID 233 -> 110 movies
user ID 234 -> 480 movies
user ID 235 -> 94 movies
user ID 236 -> 124 movies
user ID 237 -> 48 movies
user ID 238 -> 29 movies
user ID 239 -> 159 movies
user ID 24 -> 68 movies
user ID 240 -> 24 movies
user ID 241 -> 23 movies
user ID 242 -> 20 movies
user ID 243 -> 81 movies
user ID 244 -> 238 movies
user ID 245 -> 22 movies
user ID 246 -> 195 movies
user ID 247 -> 26 movies
user ID 248 -> 56 movies
user ID 249 -> 161 movies
user ID 25 -> 78 movies
user ID 250 -> 122 movies
user ID 251 -> 77 movies
user ID 252 -> 21 movies
user ID 253 -> 97 movies
user ID 254 -> 159 movies
user ID 255 -> 83 movies
user ID 256 -> 207 movies
user ID 257 -> 57 movies
user ID 258 -> 23 movies
user ID 259 -> 46 movies
user ID 26 -> 107 movies
user ID 260 -> 24 movies
user ID 261 -> 27 movies
user ID 262 -> 160 movies
user ID 263 -> 123 movies
user ID 264 -> 120 movies
user ID 265 -> 46 movies
user ID 266 -> 23 movies
user ID 267 -> 185 movies
user ID 268 -> 328 movies
user ID 269 -> 323 movies
user ID 27 -> 25 movies
user ID 270 -> 138 movies
user ID 271 -> 278 movies
user ID 272 -> 51 movies
user ID 273 -> 22 movies
user ID 274 -> 71 movies
user ID 275 -> 95 movies
user ID 276 -> 518 movies
user ID 277 -> 54 movies
user ID 278 -> 23 movies
user ID 279 -> 434 movies
user ID 28 -> 79 movies
user ID 280 -> 258 movies
user ID 281 -> 26 movies
user ID 282 -> 22 movies
user ID 283 -> 53 movies
user ID 284 -> 47 movies
user ID 285 -> 32 movies
user ID 286 -> 288 movies
user ID 287 -> 62 movies
user ID 288 -> 75 movies
user ID 289 -> 27 movies
user ID 29 -> 34 movies
user ID 290 -> 150 movies
user ID 291 -> 296 movies
user ID 292 -> 124 movies
user ID 293 -> 388 movies
user ID 294 -> 150 movies
user ID 295 -> 196 movies
user ID 296 -> 147 movies
user ID 297 -> 192 movies
user ID 298 -> 127 movies
user ID 299 -> 280 movies
user ID 3 -> 54 movies
user ID 30 -> 43 movies
user ID 300 -> 20 movies
user ID 301 -> 275 movies
user ID 302 -> 21 movies
user ID 303 -> 484 movies
user ID 304 -> 26 movies
user ID 305 -> 222 movies
user ID 306 -> 32 movies
user ID 307 -> 112 movies
user ID 308 -> 397 movies
user ID 309 -> 20 movies
user ID 31 -> 36 movies
user ID 310 -> 21 movies
user ID 311 -> 294 movies
user ID 312 -> 223 movies
user ID 313 -> 262 movies
user ID 314 -> 245 movies
user ID 315 -> 87 movies
user ID 316 -> 75 movies
user ID 317 -> 22 movies
user ID 318 -> 174 movies
user ID 319 -> 23 movies
user ID 32 -> 41 movies
user ID 320 -> 154 movies
user ID 321 -> 125 movies
user ID 322 -> 51 movies
user ID 323 -> 89 movies
user ID 324 -> 66 movies
user ID 325 -> 142 movies
user ID 326 -> 187 movies
user ID 327 -> 284 movies
user ID 328 -> 283 movies
user ID 329 -> 65 movies
user ID 33 -> 24 movies
user ID 330 -> 147 movies
user ID 331 -> 70 movies
user ID 332 -> 183 movies
user ID 333 -> 26 movies
user ID 334 -> 333 movies
user ID 335 -> 22 movies
user ID 336 -> 130 movies
user ID 337 -> 34 movies
user ID 338 -> 75 movies
user ID 339 -> 254 movies
user ID 34 -> 20 movies
user ID 340 -> 44 movies
user ID 341 -> 21 movies
user ID 342 -> 201 movies
user ID 343 -> 237 movies
user ID 344 -> 190 movies
user ID 345 -> 232 movies
user ID 346 -> 193 movies
user ID 347 -> 199 movies
user ID 348 -> 58 movies
user ID 349 -> 41 movies
user ID 35 -> 25 movies
user ID 350 -> 50 movies
user ID 351 -> 44 movies
user ID 352 -> 42 movies
user ID 353 -> 25 movies
user ID 354 -> 233 movies
user ID 355 -> 26 movies
user ID 356 -> 24 movies
user ID 357 -> 76 movies
user ID 358 -> 43 movies
user ID 359 -> 27 movies
user ID 36 -> 20 movies
user ID 360 -> 102 movies
user ID 361 -> 121 movies
user ID 362 -> 25 movies
user ID 363 -> 311 movies
user ID 364 -> 20 movies
user ID 365 -> 58 movies
user ID 366 -> 33 movies
user ID 367 -> 58 movies
user ID 368 -> 45 movies
user ID 369 -> 22 movies
user ID 37 -> 57 movies
user ID 370 -> 75 movies
user ID 371 -> 51 movies


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值