概要 anchor.png Edit

std.algorithm.bringToFront関数について解説します。

Page Top

ポイント anchor.png Edit

bringToFront関数は2つのRangeを引数に取ります。 仮にその2つのRangeをa, bとするとa、bの順番に並んでいたものを、b、aの順番に並び替え、aとbの中身に入れ直します。範囲がかぶっていた場合は、かぶっている部分を無視して並び替えます。

Page Top

サンプルコード anchor.png Edit

Everything is expanded.Everything is shortened.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
 
 
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
!
import std.stdio, std.algorithm;
 
void main()
{
    auto a = [0,1,2,3,4,5,6,7,8,9];
    auto b = [0,1,2,3,4,5,6,7,8,9];
    auto c = [0,1,2,3,4,5,6,7,8,9];
    
    assert(a[1..5].equal([1,2,3,4]));
    assert(a[3..7].equal([3,4,5,6]));
    assert(c[1..2].equal([1]));
    assert(c[3..7].equal([3,4,5,6]));
    
    a[1..5].bringToFront(a[3..7]); // 3,4がかぶっているので、a[1..5]の後半2要素は無視される
    b[1..3].bringToFront(b[3..7]);
    c[1..2].bringToFront(c[3..7]);
    
    assert(a[1..5].equal([3,4,5,6]));
    assert(a[3..7].equal([5,6,1,2]));
    assert(a.equal(b));
    assert(c[1..2].equal([3]));
    assert(c[3..7].equal([4,5,6,1]));
    
    writeln(a);
    writeln(b);
    writeln(c);
}
Page Top

実行結果 anchor.png Edit

1
2
3
4
$ dmd -run main
a: [0, 3, 4, 5, 6, 1, 2, 7, 8, 9]
b: [0, 3, 4, 5, 6, 1, 2, 7, 8, 9]
c: [0, 3, 2, 4, 5, 6, 1, 7, 8, 9]

Page Top

投票とコメント anchor.png Edit

選択肢 投票
大変参考になった0  
参考になった0  
あまり参考にならなかった0  
まったく参考にならなかった0  

コメントはありません。 コメント​/SampleCodes​/Phobos​/range​/3編集

お名前:

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 1641, today: 1, yesterday: 4
初版日時: 2013-03-22 (金) 18:15:08
最終更新: 2013-03-22 (金) 18:15:08 (JST) (1555d) by SHOO
メインメニュー

ログイン

ユーザー名:


パスワード:





パスワード紛失  |新規登録

Menu