removing an item from a dynamic array
bearophile
bearophileHUGS at lycos.com
Tue Oct 25 02:51:25 PDT 2011
maarten van damme:
> import std.algorithm;
> struct Loc {
> uint row;
> uint col;
> }
> void main(){
> Loc[] testArray;
> Loc a={3,2};
> Loc b={5,3};
> testArray~=a;
> testArray~=b;
> remove(testArray,a);
> }
> gives the same error
The second argument of remove() needs to be an index, a size_t.
This works:
import std.stdio, std.algorithm;
struct Loc {
uint row, col;
}
void main() {
auto a = Loc(3, 2),
b = Loc(5, 3);
auto data = [a, b];
writeln(remove(data, 0));
writeln(data);
}
It prints:
[Loc(5, 3)]
[Loc(5, 3), Loc(5, 3)]
So curiously remove() doesn't work in-place, I think this is a bug or a design bug.
Bye,
bearophile
More information about the Digitalmars-d-learn
mailing list