On Thursday, 5 February 2015 at 15:21:56 UTC, BBaz wrote:
On Thursday, 5 February 2015 at 14:09:06 UTC, FrankLike wrote:
Now operate array is not very quick,such as contains function,remove item function
can't get from arry module.

template contains(T)
{
        bool contains(T[] Array,T Element)
        {
                foreach(T ArrayElement; Array)
                {
                        if(Element==ArrayElement)
                        {
                                return true;
                        }
                }
                return false;
        }
}

template remove(T)
{
        bool remove(T[] Array,T Element)
        {
                ?????
                return true;
        }
}

or

remove!("a == ?")(arr)

How to get the easy and quickly way?

Thank you.

If you encounter difficulties to memorize the functions then you can wrap the usefull thing in a struct, e.g:

---
struct array(T)
{
    T[] _arr;
    alias _arr this ;

    bool opIn_r(T)(T t)
    {
        import std.algorithm;
        return canFind(_arr, t);
    }
    alias canFind = opIn_r;

    typeof(_arr) remove(T t)
    {
        _arr = std.algorithm.remove(_arr, t);
        return _arr;
    }
}
---

If the editor you use has a completion proposal system then it'll work like a charm. I've myself in the process of doing something similar for DList because i've been intoxicated for years with the easiness of the pascal Run Time Library lists (they have exchange, add , remove etc...)

Thank  you very  much.

Reply via email to