Example #1
0
List<T> removeDuplicates(List<T>  l, compare<T> comp) {
    List<T> removed;
    for (int i = 0; i < l.length(); ++i) {
        T val = l[i];

        bool found = false;
        for (int j = 0; j < removed.length(); ++j) {

            if (comp(removed[j], val))
                found = true;
        }

        if (!found)
            removed.AddToBack(val);
    }

    return removed;
}
Example #2
0
int main() {

    List<int> l;
    l.AddToBack(1);
    l.AddToBack(2);
    l.AddToBack(3);
    l.AddToBack(4);
    l.AddToBack(5);

    std::cerr << "l: ";
    int size = l.length();
    for (int i = 0; i < size; ++i)
        std::cerr << " " << l[i];
    std::cerr << std::endl;

    List<int> copy(l);

    std::cerr << "copy: ";
    size = copy.length();
    for (int i = 0; i < size; ++i)
        std::cerr << copy[i] << " ";
    std::cerr << std::endl;

    List<int> assigned = l;

    std::cerr << "assigned: ";
    size = assigned.length();
    for (int i = 0; i < size; ++i)
        std::cerr << assigned[i] << " ";
    std::cerr << std::endl;

    for (int i = 0; i < 2; ++i) {
        int front = l.RemoveFromFront();
        std::cerr << "removed " << front << " ";
    }
    std::cerr << std::endl;


    std::cerr << "l: ";
    for (int i = 0; i < l.length(); ++i)
        std::cerr << l[i] << " ";
    std::cerr << std::endl;

    std::cerr << "copy: ";
    for (int i = 0; i < copy.length(); ++i)
        std::cerr << copy[i] << " ";
    std::cerr << std::endl;

    std::cerr << "assigned: ";
    for (int i = 0; i < assigned.length(); ++i)
        std::cerr << assigned[i] << " ";
    std::cerr << std::endl;


    // =======================================
    // Problem 2
    List<int> dups;
    dups.AddToBack(1);
    dups.AddToBack(2);
    dups.AddToBack(3);
    dups.AddToBack(4);
    dups.AddToBack(2);
    dups.AddToBack(3);
    dups.AddToBack(3);
    compare<int> f;
    List<int> removed = removeDuplicates(dups, f);

    std::cerr << "removed: ";
    for (int i = 0; i < removed.length(); ++i)
        std::cerr << removed[i] << " ";
    std::cerr << std::endl;

    return 0;
}