回答編集履歴

4

begin()での方法追記

2020/05/31 11:46

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -16,6 +16,10 @@
16
16
 
17
17
  [std::vector::begin](https://cpprefjp.github.io/reference/vector/vector/begin.html)が返すのは先頭要素のポインタではなくイテレータです。
18
18
 
19
+ `begin()`でやりたいなら、`&*v.begin()`。
20
+
21
+ `*`をつけて先頭要素の参照を取得し、さらに`&`をつけてアドレスを取得。
22
+
19
23
 
20
24
 
21
25
  ---

3

front(),data()追記

2020/05/31 11:46

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -15,3 +15,11 @@
15
15
 
16
16
 
17
17
  [std::vector::begin](https://cpprefjp.github.io/reference/vector/vector/begin.html)が返すのは先頭要素のポインタではなくイテレータです。
18
+
19
+
20
+
21
+ ---
22
+
23
+
24
+
25
+ [`&v.front()`](https://cpprefjp.github.io/reference/vector/vector/front.html)や[`v.data()`](https://cpprefjp.github.io/reference/vector/vector/data.html)でもよいです。

2

beginについて追記

2020/05/31 11:39

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -3,3 +3,15 @@
3
3
 
4
4
 
5
5
  [std::vector::operator[]](https://cpprefjp.github.io/reference/vector/vector/op_at.html)は要素への参照を返します。[vectorの要素はメモリ上で連続していることが保証されている](https://cpprefjp.github.io/reference/vector/vector.html)ため、`&v[0]`で取得した先頭要素のアドレスから要素数分連続して格納されています。
6
+
7
+
8
+
9
+ ---
10
+
11
+
12
+
13
+ > .begin()ではエラーになります
14
+
15
+
16
+
17
+ [std::vector::begin](https://cpprefjp.github.io/reference/vector/vector/begin.html)が返すのは先頭要素のポインタではなくイテレータです。

1

メモリ上で連続している旨追記

2020/05/31 11:00

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -1 +1,5 @@
1
1
  `vector<VERTEX3D> v;`が空でないのなら`&v[0]`でよいです。
2
+
3
+
4
+
5
+ [std::vector::operator[]](https://cpprefjp.github.io/reference/vector/vector/op_at.html)は要素への参照を返します。[vectorの要素はメモリ上で連続していることが保証されている](https://cpprefjp.github.io/reference/vector/vector.html)ため、`&v[0]`で取得した先頭要素のアドレスから要素数分連続して格納されています。