おいふぉりーのぶろぐ

きっと趣味のブログに違いないです!!

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

const_iterator の const を外したいと思ったこと

iterator_cast.png
ちょっとプログラムを書いてて思ったことです。上の図にまとめてみたのですが… const_iterator を iterator にキャストしたいなぁと思いました。

とある std::list コンテナに色々要素が入っています。とある条件でコンテナ内にある要素を消去する問題を考えます。(この条件とは、1つ要素にだけ注目してその要素を消去するかどうかは判定できず、他の要素も調べて消去するかどうか決定する必要があります。このため、単純にファンクタを用意して、それを STL のアルゴリズムで適応するというわけにはいきません。)

ここで、消去調査オブジェクトとして、コンテナの参照を渡して、消去要素の iterator を返すオブジェクトを用意しました。調査オブジェクトは要素の値を変更する必要はないので、参照に const を付けようとします。すると、自動的に返す iterator も const_iterator となります。でも、消去に使う erase() メソッドは const_iterator ではなく iterator が必要です。

そんなわけで、キャストできればなぁ~とちょっと思ったわけです。う~ん、他にいい方法はないかなぁ~。
スポンサーサイト
  1. 2007/07/04(水) 01:26:53|
  2. ソフトウェア開発
  3. | トラックバック:0
  4. | コメント:3
次のページ

来客数

プロフィール

Euphorie

Author:Euphorie
"おいふぉりー"って呼んでくださいな☆
ハードウェアとかソフトウェアとかの開発に興味があったり。。。
連絡先は上の画像。

最近の記事

最近のコメント

最近のトラックバック

月別アーカイブ

カテゴリー

ブロとも申請フォーム

この人とブロともになる

ブログ内検索

RSSフィード

リンク

このブログをリンクに追加する

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。