我找不到任何关于如何将范围与容器结合使用的好的文档。我正在尝试使用给定的 .insertAfter() 函数将元素插入到 SList 中。虽然它需要一个范围,但我不知道如何检索它。
有人可以发布一个或两个如何使用这个记录不充分的功能的例子吗?
这是容器的 D 文档 - http://dlang.org/phobos/std_container.html
我也读过范围可以像 c++ 迭代器一样使用。如果这是真的,我如何在循环中使用范围?
我找不到任何关于如何将范围与容器结合使用的好的文档。我正在尝试使用给定的 .insertAfter() 函数将元素插入到 SList 中。虽然它需要一个范围,但我不知道如何检索它。
有人可以发布一个或两个如何使用这个记录不充分的功能的例子吗?
这是容器的 D 文档 - http://dlang.org/phobos/std_container.html
我也读过范围可以像 c++ 迭代器一样使用。如果这是真的,我如何在循环中使用范围?
使用切片运算符 ( []
) 获取容器的范围
要遍历容器,您可以执行以下操作:
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);