回答編集履歴

2

修正

2020/03/10 00:25

投稿

asm
asm

スコア15149

test CHANGED
@@ -44,6 +44,8 @@
44
44
 
45
45
  `std::vector`は連続した領域を確保する事が仕様で定められていますので
46
46
 
47
+ (なお、std::vector<bool>は除く)
48
+
47
49
 
48
50
 
49
51
  ```c++

1

追記

2020/03/10 00:25

投稿

asm
asm

スコア15149

test CHANGED
@@ -33,3 +33,41 @@
33
33
 
34
34
 
35
35
  例外を使用したくない場合を除き、一般的には`std::vector<std::byte>`で十分です。
36
+
37
+
38
+
39
+
40
+
41
+ **追記**
42
+
43
+
44
+
45
+ `std::vector`は連続した領域を確保する事が仕様で定められていますので
46
+
47
+
48
+
49
+ ```c++
50
+
51
+ std::unique_ptr<std::byte> buffer(new(std::nothrow) std::byte[n]);
52
+
53
+ memcpy(buffer.get(),"hello",6);
54
+
55
+ std::cout << (char*)buffer.get();
56
+
57
+
58
+
59
+ std::vector<std::byte> v(n);
60
+
61
+ memcpy(v.data(), "world", 6);
62
+
63
+ std::cout << (char*)v.data() << std::endl;
64
+
65
+
66
+
67
+ std::cout << (char*)&*buffer << (char*)&v[0];
68
+
69
+ ```
70
+
71
+
72
+
73
+ memcpy可能です。