3

コンテナーと組み合わせて範囲を使用する方法に関する適切なドキュメントが見つかりません。指定された .insertAfter() 関数を使用して要素を SList に挿入しようとしています。ただし、範囲が必要で、取得方法がわかりません。

文書化されていないこの機能の使用方法の例を 1 つか 2 つ投稿してもらえますか?

これはコンテナーの D ドキュメントです - http://dlang.org/phobos/std_container.html

また、範囲はC ++イテレータのように使用できることも読みました。これが当てはまる場合、ループで範囲を使用するにはどうすればよいですか?

4

1 に答える 1

6

[]コンテナの範囲を取得するには、スライス演算子 ( ) を使用します

コンテナを反復するには、次のことができます。

foreach(el;container[]){

}

範囲には現在ポイントされている要素である front プロパティがあり、範囲の popFront は範囲を次の要素に移動し、空は範囲が最後にあるかどうかを示します

上記の foreach ループは次と同等です

for(auto range=container[];!range.empty;range.popFront()){
    auto el = range.front;

}

あなたがする必要があるリストの真ん中に挿入するには

container.insertAfter(take(container[],5),element);

最後に挿入するには

container.insertAfter(container[],element);
于 2012-06-12T19:50:52.830 に答える