- View the source.
- Go to SampleCodes/Phobos/range/2.
Cur: 2010-08-28 (Sat) 00:56:06 SHOO ![]() ![]() D2.049で加えられる破壊的変更に対応, 間違ってたorz at 2010-08-28 (土) 00:59:42 |
|||
---|---|---|---|
Line 1: | Line 1: | ||
+ | TITLE:Appenderによる効率のよい配列への追加 | ||
+ | // ページタイトルを記入しましょう | ||
+ | #navi | ||
+ | |||
+ | * 概要 [#q64854c9] | ||
+ | std.arrayに含まれるAppenderを利用すると、効率のよい配列への要素追加が行えます。((D2.049)) | ||
+ | |||
+ | * ポイント [#x64fbac2] | ||
+ | 割り当ては | ||
+ | #code(d,notitle,nooutline,nonumber){{{ | ||
+ | auto app = appender(ary); | ||
+ | }}} | ||
+ | |||
+ | 配列の変数へのポインタをappenderに渡してやることで生成してくれます。 | ||
+ | |||
+ | 追加は | ||
+ | #code(d,notitle,nooutline,nonumber){{{ | ||
+ | app.put(e); | ||
+ | }}} | ||
+ | |||
+ | 追加後のデータの取得方法は | ||
+ | #code(d,notitle,nooutline,nonumber){{{ | ||
+ | ary = app.data; | ||
+ | }}} | ||
+ | |||
+ | aryは配列、eはaryの型か、aryの要素の型です。 | ||
+ | |||
+ | * サンプルコード [#s2ef49ac] | ||
+ | #code(d){{{ | ||
+ | import std.array; | ||
+ | import std.stdio; | ||
+ | |||
+ | void main() { | ||
+ | string str; | ||
+ | auto app = appender(str); | ||
+ | app.put("xxx"); | ||
+ | app.put("XXX"); | ||
+ | app.put('a'); | ||
+ | app.put('b'); | ||
+ | app.put('c'); | ||
+ | str = app.data; // 変化は直接strに表れないため、代入しなおします。 | ||
+ | writeln(str); | ||
+ | // 特に後始末は考えなくてもよしなにしてくれる | ||
+ | } | ||
+ | }}} | ||
+ | |||
+ | * 実行結果 [#a64c4e8a] | ||
+ | #code(console){{{ | ||
+ | $ dmd -run main | ||
+ | xxxXXXabc | ||
+ | }}} | ||
+ | |||
+ | #navi | ||
+ | |||
+ | * 投票とコメント [#h24277de] | ||
+ | #vote(大変参考になった,参考になった,あまり参考にならなかった,まったく参考にならなかった,#notimestamp) | ||
+ | #pcomment |
- Backup diff of SampleCodes/Phobos/range/2(No. All)
- Cur: 2010-08-28 (Sat) 00:56:06 SHOO
- D2.049で加えられる破壊的変更に対応, 間違ってたorz at 2010-08-28 (土) 00:59:42
- Cur: 2010-08-28 (Sat) 00:56:06 SHOO
Page Info | |
---|---|
Page Name : | SampleCodes/Phobos/range/2 |
Page aliases : | None |
Page owner : | SHOO |
Can Read | |
Groups : | All visitors |
Users : | All visitors |
Can Edit | |
Groups : | All visitors |
Users : | All visitors |
Counter: 1164,
today: 1,
yesterday: 1