C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[7]: テンプレート変数からイテレータ変数の宣言 [1]


(過去ログ 53 を表示中)

[トピック内 21 記事 (21 - 21 表示)]  << 0 | 1 >>

■29972 / inTopicNo.21)  Re[10]: テンプレート変数からイテレータ変数の宣言
  
□投稿者/ 七篠 (19回)-(2008/12/17(Wed) 11:34:02)
お返事ありがとうございます。

No29939 (774RR さん) に返信
> iterator が1つしかないので反復中に反復かけたくなったら破綻するのに
> Mutex で保護も無いもんだ
>
> // こんな感じで iterator が2つ必要な場合に提示コードだとどうにもならない
> for (x=c.begin(); x!=c.end(); ++x) {
> y=x;
> for (advance(y,1); y!=c.end(); ++y) {
> // y と x で何かする ...
> }
> }
マルチスレッドは C# で少しいじった程度なので理解できませんでした。
この辺りは更に勉強して理解できるように努力します。

■29949(あんどちん さん)に返信
> 774RRさんのコードのようにイテレータ更新を別メソッドにした方が汎用性が上がると思いますよ。
> 中身の取得をすると更新されては同じ位置のデータを2回取ることが難しくなります。イテレータ更新はfor文の中で行うでしょうからプログラム行数もまず変わりませんし。
foreach 的な使用しか想定していなかったので、コード量を減らす為に中身の取得とイテレータ更新が一緒になっています。
確かに汎用性に問題がありますね;

> List<T>のインスタンスをローカルに生成していませんか?
> その場合List<T>内のイテレータもフレームポインタからのオフセットで参照できるので、イテレータをローカル変数で宣言して処理する場合とほとんど変わらない実行コードが出来ると思います。
まさにその通りです。 経験と知識の浅さが丸出しですね...
引用返信 編集キー/

<前の20件
トピック内ページ移動 / << 0 | 1 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -