回答編集履歴

3

追記

2018/10/18 09:53

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -80,7 +80,7 @@
80
80
 
81
81
  {
82
82
 
83
- std::vector<int> vec;
83
+ std::vector<int> vec; // 単に vec(10) でも良い
84
84
 
85
85
  vec.resize(10);
86
86
 

2

修正

2018/10/18 09:53

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -64,9 +64,11 @@
64
64
 
65
65
 
66
66
 
67
- 生配列に対しても、sizeofは避けた方が良いと思います。
67
+ 生配列に対しても、sizeofの利用可能です。[std::size](https://cpprefjp.github.io/reference/iterator/size.html)
68
68
 
69
69
  ```C++
70
+
71
+ #include <iterator>
70
72
 
71
73
  #include <vector>
72
74
 
@@ -108,7 +110,7 @@
108
110
 
109
111
 
110
112
 
111
- **実行結果** [Wandbox](https://wandbox.org/permlink/bZ4nYmqC9AWEYvH7)
113
+ **実行結果** [Wandbox](https://wandbox.org/permlink/IwCcylpJ43O4zWpZ)
112
114
 
113
115
  ```
114
116
 

1

追記

2018/10/18 09:51

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -1,4 +1,126 @@
1
1
  配列というか、std::vectorですね。
2
+
3
+
4
+
5
+ > 下記コードで期待の要素数より少なくなってしまう原因
6
+
7
+
8
+
9
+ 生配列と違って、std::vectorはデータを直接保持しないからです。
10
+
11
+ ```C++
12
+
13
+ #include <vector>
14
+
15
+ #include <iostream>
16
+
17
+
18
+
19
+ int main()
20
+
21
+ {
22
+
23
+ std::vector<int> a, b, c;
24
+
25
+
26
+
27
+ a.resize(10);
28
+
29
+ b.resize(100);
30
+
31
+ c.resize(1000);
32
+
33
+
34
+
35
+ std::cout << sizeof(a) << "\n"
36
+
37
+ << sizeof(b) << "\n"
38
+
39
+ << sizeof(c) << "\n"
40
+
41
+ ;
42
+
43
+
44
+
45
+ return 0;
46
+
47
+ }
48
+
49
+ ```
50
+
51
+
52
+
53
+ **実行結果** [Wandbox](https://wandbox.org/permlink/sEg2rPAH5SPgcOdM)
54
+
55
+ ```
56
+
57
+ 24
58
+
59
+ 24
60
+
61
+ 24
62
+
63
+ ```
64
+
65
+
66
+
67
+ 生配列に対しても、sizeofは避けた方が良いと思います。
68
+
69
+ ```C++
70
+
71
+ #include <vector>
72
+
73
+ #include <iostream>
74
+
75
+
76
+
77
+ int main()
78
+
79
+ {
80
+
81
+ std::vector<int> vec;
82
+
83
+ vec.resize(10);
84
+
85
+
86
+
87
+ int arr[10];
88
+
89
+
90
+
91
+ std::cout << vec.size() << "\n"
92
+
93
+ << std::size(vec) << "\n"
94
+
95
+ << sizeof(arr) / sizeof(arr[0]) << "\n"
96
+
97
+ << std::size(arr) << "\n"
98
+
99
+ ;
100
+
101
+
102
+
103
+ return 0;
104
+
105
+ }
106
+
107
+ ```
108
+
109
+
110
+
111
+ **実行結果** [Wandbox](https://wandbox.org/permlink/bZ4nYmqC9AWEYvH7)
112
+
113
+ ```
114
+
115
+ 10
116
+
117
+ 10
118
+
119
+ 10
120
+
121
+ 10
122
+
123
+ ```
2
124
 
3
125
 
4
126