X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=flower%2Finclude%2Fparray.hh;h=cb3fc24ee8b2ddbaa90bb7624574268e2b661e6d;hb=2da5c55cf0a968982223682227a0cf3b019d03a8;hp=1e7404ee5565edf2c34f9157700712288a677670;hpb=04f01c7e890bd4f1b358378e5911fb7c117c3802;p=lilypond.git diff --git a/flower/include/parray.hh b/flower/include/parray.hh index 1e7404ee55..cb3fc24ee8 100644 --- a/flower/include/parray.hh +++ b/flower/include/parray.hh @@ -1,69 +1,34 @@ /* - parray.hh -- declare Pointer_array + This file is part of LilyPond, the GNU music typesetter. - source file of the Flower Library + Copyright (C) 1997--2012 Han-Wen Nienhuys - (c) 1997 Han-Wen Nienhuys -*/ + LilyPond is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . +*/ #ifndef PARRAY_HH #define PARRAY_HH -#include "varray.hh" +#include "std-vector.hh" -/** - an array of pointers. +using namespace std; - TODO - should init to 0. Derive from Array? - */ template -class Link_array : public Array +class Link_array : public vector { - static default_compare(T *const& p1, T *const&p2) { - /* can't do p1 -p2, since T might be an incomplete type */ - if (p1 < p2) - return -1 ; - if (p2 < p1) - return 1; - return 0; - } -public: - void substitute(T *old, T*new_l) - { - int i; - while ((i = find_i(old)) >=0) - if (new_l) - elem(i) =new_l; - else - del(i); - } - void default_sort() { - sort(default_compare); - } - void uniq() { - Link_array l_arr; - for (int i=0; i < size(); i++) - if (!i || elem(i-1) != elem(i)) - l_arr.push(elem(i)); - *this = l_arr; - } - int find_i (T const * t) const { - for (int i=0; i < size(); i++) - if (elem(i) == t) - return i; - return -1; - } - T *find_l(T const *t)const - { - int i = find_i(t); - if (i >= 0) - return elem(i); - else - return 0; - } }; #endif // PARRAY_HH +