回答編集履歴
2
追記
test
CHANGED
@@ -31,3 +31,17 @@
|
|
31
31
|
配列というかコンテナという意味ではビックリする程たくさんあります。
|
32
32
|
|
33
33
|
[ここにリスト](http://www.cplusplus.com/reference/stl/)があります。
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
---
|
38
|
+
|
39
|
+
【追記】
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
> もし、strがchar*型だった場合、これはpush_backメンバ関数を当然持たないのでコンパイル・エラーになります。
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
不正確な表現でした。`std::istream::operator>>(char*)`は未定義なのでコンパイル・エラーになります。
|
1
補足
test
CHANGED
@@ -7,6 +7,8 @@
|
|
7
7
|
std::stringもstd::string自身の機能で勝手に領域サイズが増えるのではなく、例えば`std::cin`等で文字列を読み込む時は、`std::istream::operator>>()`という関数がstd::stringの`push_back`などを呼び出しています。
|
8
8
|
|
9
9
|
`std::cin`は`std::istream`を継承しているので、`std::cin >> str;`と書くと、`std::istream::operator>>()`が呼ばれるのです。
|
10
|
+
|
11
|
+
もし、strが`char*`型だった場合、これは`push_back`メンバ関数を当然持たないのでコンパイル・エラーになります。strが`std::string`型の場合`push_back`メンバ関数を持つのでエラーにならず適切に動作します。
|
10
12
|
|
11
13
|
|
12
14
|
|
@@ -26,6 +28,6 @@
|
|
26
28
|
|
27
29
|
|
28
30
|
|
29
|
-
配列というかコンテナという
|
31
|
+
配列というかコンテナという意味ではビックリする程たくさんあります。
|
30
32
|
|
31
33
|
[ここにリスト](http://www.cplusplus.com/reference/stl/)があります。
|