Range of Ranges and std.algorithm
Jesse Phillips
jessekphillips+D at gmail.com
Tue Mar 16 09:35:55 PDT 2010
I'm guessing that containers will help with this, but I'm not sure how.
Say I have an int[][] of unknown length and I want to get the setIntersection of all int[]s. The only way I can see to do that is to intersect the first two elements and iterate over them storing into an int[] which can be used in an intersection with the next element...
I realize that a Range is meant to be view of a container, but it seems to me that containing a Range can be just as useful. How might containers improve this situation?
-----------------------------------
import std.algorithm;
void main() {
auto lists = [[1,2,3,4,5],
[2,4,6,8,10],
[1,1,2,3,5]];
//assert(setIntersection(lists) == [2]);
auto result = setIntersection(lists[0], lists[1]);
foreach(range; lists)
result = setIntersection(result, range);
}
-------------------------------
.\setint.d(13): Error: cannot implicitly convert expression (setIntersection(res
ult,range)) of type SetIntersection!(less,SetIntersection!(less,int[],int[]),int
[]) to SetIntersection!(less,int[],int[])
More information about the Digitalmars-d-learn
mailing list