質問編集履歴
2
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -195,5 +195,5 @@
|
|
195
195
|
│111 return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp))); │
|
196
196
|
│112 }
|
197
197
|
```
|
198
|
-
おそらく、線形listの
|
198
|
+
おそらく、線形listのように、newを使って新たに領域を作り、そのポインタを連結させているんですかね・・・
|
199
199
|
つまり・・・newで作成した領域を随時増やす、reallocみたいな関数はnewでは実現不可能・・・ということですかね。
|
1
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -173,4 +173,27 @@
|
|
173
173
|
これは・・・コンストラクタの方に、std::initializer_listがありませんが・・・
|
174
174
|
これは、それぞれ、new C(0); new C(0, 0);と同値である。と考えて良いんですか??
|
175
175
|
|
176
|
-
分かる方教えてください。環境は、g++ Linuxです。
|
176
|
+
分かる方教えてください。環境は、g++ Linuxです。
|
177
|
+
|
178
|
+
---
|
179
|
+
[追記]
|
180
|
+
vectorが伸びているのは、再度newを呼び出していました。
|
181
|
+
```ここに言語を入力
|
182
|
+
pointer │
|
183
|
+
│99 allocate(size_type __n, const void* = static_cast<const void*>(0)) │
|
184
|
+
│100 { │
|
185
|
+
>│101 if (__n > this->max_size()) │
|
186
|
+
│102 std::__throw_bad_alloc(); │
|
187
|
+
│103 │
|
188
|
+
│104 #if __cpp_aligned_new │
|
189
|
+
│105 if (alignof(_Tp) > __STDCPP_DEFAULT_NEW_ALIGNMENT__) │
|
190
|
+
│106 { │
|
191
|
+
│107 std::align_val_t __al = std::align_val_t(alignof(_Tp)); │
|
192
|
+
│108 return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp), __al)); │
|
193
|
+
│109 } │
|
194
|
+
│110 #endif │
|
195
|
+
│111 return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp))); │
|
196
|
+
│112 }
|
197
|
+
```
|
198
|
+
おそらく、線形listの用に、newを使って新たに領域を作り、そのポインタを連結させているんですかね・・・
|
199
|
+
つまり・・・newで作成した領域を随時増やす、reallocみたいな関数はnewでは実現不可能・・・ということですかね。
|