0

独自の文字反復子クラスを定義しました。std::string のようなインターフェイスを再度実装する必要がないように、どうにかして std::string にプラグインできますか? std::basic_string のテンプレート引数を確認しましたが、このようなものは何も取りません。

4

2 に答える 2

1

1つのアイデアは、イテレータを返す関数begin(std::string)を提供することです。end(std::string)これらは、イテレータが必要なすべての場所で使用できます。

begin()無料の関数スタイルはc++11以降です。

于 2012-12-03T10:35:39.470 に答える
0

反復子のペアを取る std::string のオーバーロードされたコンストラクターがあります。それは機能しますが、コピーを作成します。もちろん、それはあなたができる最善のことです。「小さな文字列の最適化」、つまりオブジェクト自体char[N]の内部に小さなものがある実装を考えてみましょう。std::stringこれは、メモリ レイアウトと互換性がない可能性が非常に高いです。

于 2012-12-03T10:57:11.083 に答える