質問編集履歴
2
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -392,6 +392,6 @@
|
|
392
392
|
|
393
393
|
```
|
394
394
|
|
395
|
-
おそらく、線形listの
|
395
|
+
おそらく、線形listのように、newを使って新たに領域を作り、そのポインタを連結させているんですかね・・・
|
396
396
|
|
397
397
|
つまり・・・newで作成した領域を随時増やす、reallocみたいな関数はnewでは実現不可能・・・ということですかね。
|
1
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -349,3 +349,49 @@
|
|
349
349
|
|
350
350
|
|
351
351
|
分かる方教えてください。環境は、g++ Linuxです。
|
352
|
+
|
353
|
+
|
354
|
+
|
355
|
+
---
|
356
|
+
|
357
|
+
[追記]
|
358
|
+
|
359
|
+
vectorが伸びているのは、再度newを呼び出していました。
|
360
|
+
|
361
|
+
```ここに言語を入力
|
362
|
+
|
363
|
+
pointer │
|
364
|
+
|
365
|
+
│99 allocate(size_type __n, const void* = static_cast<const void*>(0)) │
|
366
|
+
|
367
|
+
│100 { │
|
368
|
+
|
369
|
+
>│101 if (__n > this->max_size()) │
|
370
|
+
|
371
|
+
│102 std::__throw_bad_alloc(); │
|
372
|
+
|
373
|
+
│103 │
|
374
|
+
|
375
|
+
│104 #if __cpp_aligned_new │
|
376
|
+
|
377
|
+
│105 if (alignof(_Tp) > __STDCPP_DEFAULT_NEW_ALIGNMENT__) │
|
378
|
+
|
379
|
+
│106 { │
|
380
|
+
|
381
|
+
│107 std::align_val_t __al = std::align_val_t(alignof(_Tp)); │
|
382
|
+
|
383
|
+
│108 return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp), __al)); │
|
384
|
+
|
385
|
+
│109 } │
|
386
|
+
|
387
|
+
│110 #endif │
|
388
|
+
|
389
|
+
│111 return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp))); │
|
390
|
+
|
391
|
+
│112 }
|
392
|
+
|
393
|
+
```
|
394
|
+
|
395
|
+
おそらく、線形listの用に、newを使って新たに領域を作り、そのポインタを連結させているんですかね・・・
|
396
|
+
|
397
|
+
つまり・・・newで作成した領域を随時増やす、reallocみたいな関数はnewでは実現不可能・・・ということですかね。
|