このページには、string::iterator
とstring::const_iterator
は「コンパイラ固有のイテレータタイプ」であると記載されています。string::iterator
これは、それが以外のカテゴリに含まれていることを意味しrandom_access_iterator
ますか?
4 に答える
ISO C ++ 03、21.3-2
状態:
(...)さらに、basic_stringでサポートされているイテレータは ランダムアクセスイテレータであるため(...)
そうです、それらは必然的にランダムアクセスイテレータです。
N3376を見て21.4/3
basic_stringでサポートされているイテレータは、ランダムアクセスイテレータです。
このようなタスクでは、標準(またはドラフト)を手元に用意しておくことをお勧めします。そこで物事を探すのに慣れるのに少し時間がかかりますが、それは直接のリソースです。
このページにはstd::string::iterator
、がありRandomAccessIterator
、cplusplus.comよりもはるかに信頼できると書かれています。
ランダムアクセスイテレータではないという意味ではありません(他の回答が述べているように、標準ではランダムアクセスイテレータである必要があります)。
これが意味するのは、正確なイテレータタイプが指定されていないことです。つまり、イテレータのタイプが指定されていない可能char*
性がありstd::string::__iterator
ます__gnu_cxx::__normal_iterator<char, std::string>
。ランダムアクセスイテレータの要件を満たし、名前で参照できる限り、これらの実装の選択肢はどれでも許可されます。string::iterator