6

このページには、string::iteratorstring::const_iteratorは「コンパイラ固有のイテレータタイプ」であると記載されています。string::iteratorこれは、それが以外のカテゴリに含まれていることを意味しrandom_access_iteratorますか?

4

4 に答える 4

12

ISO C ++ 03、21.3-2状態:

(...)さらに、basic_stringでサポートされているイテレータは ランダムアクセスイテレータであるため(...)

そうです、それらは必然的にランダムアクセスイテレータです。

于 2012-07-10T21:18:39.387 に答える
5

N3376を見て21.4/3

basic_stringでサポートされているイテレータは、ランダムアクセスイテレータです。

このようなタスクでは、標準(またはドラフト)を手元に用意しておくことをお勧めします。そこで物事を探すのに慣れるのに少し時間がかかりますが、それは直接のリソースです。

于 2012-07-10T21:21:05.400 に答える
3

このページにはstd::string::iterator、がありRandomAccessIterator、cplusplus.comよりもはるかに信頼できると書かれています。

于 2012-07-10T21:17:12.270 に答える
3

ランダムアクセスイテレータではないという意味ではありません(他の回答が述べているように、標準ではランダムアクセスイテレータである必要があります)。

これが意味するのは、正確なイテレータタイプが指定されていないことです。つまり、イテレータのタイプが指定されていない可能char*性がありstd::string::__iteratorます__gnu_cxx::__normal_iterator<char, std::string>。ランダムアクセスイテレータの要件を満たし、名前で参照できる限り、これらの実装の選択肢はどれでも許可されます。string::iterator

于 2012-07-10T22:52:10.193 に答える