update callers.
* flower/include/array.hh (begin, end): Add.
(del, get): Remove.
+2006-02-01 Jan Nieuwenhuizen <janneke@gnu.org>
+
+ * flower/include/std-vector.hh (del): Remove. Use erase (),
+ update callers.
+
+ * flower/include/array.hh (begin, end): Add.
+ (del, get): Remove.
+
2006-02-01 Han-Wen Nienhuys <hanwen@xs4all.nl>
* lily/prob.cc (Prob): copy type_ too.
size_ = s;
}
+ T*
+ data ()
+ {
+ return array_;
+ }
+
+ typedef T* iterator;
+
+ iterator
+ begin ()
+ {
+ return data ();
+ }
+
+ iterator const
+ begin () const
+ {
+ return data ();
+ }
+
+ iterator
+ end ()
+ {
+ return data () + size_;
+ }
+
+ iterator const
+ end () const
+ {
+ return data () + size_;
+ }
+
+ void clear ()
+ {
+ resize (0);
+ }
+
+ /* std::vector uses unchecked variant for [] */
+ T &operator [] (vsize i)
+ {
+ return elem_ref (i);
+ }
+
+ /* std::vector uses unchecked variant for [] */
+ T const &operator [] (vsize i) const
+ {
+ return elem_ref (i);
+ }
+
+ iterator
+ erase (iterator p)
+ {
+ vsize i = p - data ();
+#if !STD_VECTOR
+ assert (i >= 0 && i < size_);
+#else
+ assert (i < size_);
+#endif
+ arrcpy (array_ + i, array_ + i + 1, size_ - i - 1);
+ size_--;
+ return p;
+ }
+
+
+ /* Flower intererface */
+
+
/// check invariants
void OK () const;
/** report the size_.
{setsize_}
*/
- /// POST: size () == 0
- void clear ()
- {
- size_ = 0;
- }
-
Array (T *tp, vsize n)
{
array_ = new T[n];
T *remove_array ();
- /// access element
- T &operator [] (vsize i)
- {
- return elem_ref (i);
- }
- /// access element
- T const &operator [] (vsize i) const
- {
- return elem_ref (i);
- }
/// access element
T &elem_ref (vsize i) const
{
}
void insert (T k, vsize j);
- /**
- remove i-th element, and return it.
- */
- T get (vsize i)
- {
- T t = elem (i);
- del (i);
- return t;
- }
+
void unordered_del (vsize i)
{
elem_ref (i) = back ();
resize (size () -1);
}
- void del (vsize i)
- {
-#if !STD_VECTOR
- assert (i >= 0 && i < size_);
-#else
- assert (i < size_);
-#endif
- arrcpy (array_ + i, array_ + i + 1, size_ - i - 1);
- size_--;
- }
// quicksort.
void sort (int (*compare) (T const &, T const &),
vsize lower=VPOS, vsize upper=VPOS);
return (T *&) Array<void *>::back ();
}
- /* Flower compat */
- Array<void *>::del;
- Array<void *>::unordered_del;
- Array<void *>::size;
+ Array<void *>::begin;
Array<void *>::clear;
+ Array<void *>::erase;
Array<void *>::resize;
+ Array<void *>::size;
Array<void *>::empty;
- Array<void *>::reverse;
Array<void *>::pop_back;
+
+
+ /* Flower compat */
+ Array<void *>::unordered_del;
+ Array<void *>::reverse;
Array<void *>::tighten_maxsize;
static int default_compare (T *const &p1, T *const &p2)
if (new_p)
elem_ref (i) = new_p;
else
- del (i);
+ erase (begin () + i);
}
void unordered_substitute (T *old, T *new_p)
{
{
sort (default_compare);
}
+
// quicksort.
void sort (int (*compare) (T *const &, T *const &),
int lower = -1, int upper = -1);
{
return (T **) Array<void *>::accesses ();
}
- T *get (int i)
+ /**
+ remove i-th element, and return it.
+ */
+ T *get (vsize i)
{
- return (T *) Array<void *>::get (i);
+ T *t = elem (i);
+ Array<void*>::erase (Array<void*>::begin () + i);
+ return t;
}
Link_array<T>
slice (int l, int u) const
if (!compare (t, arr[lo]))
return lo;
- else
- return -1; /* not found */
+ /* not found */
+ return -1;
}
template<class T>
if (!compare (t, arr[lo]))
return lo;
- else
- return -1; /* not found */
+ /* not found */
+ return -1;
}
template<class T>
{
public:
typedef typename __vector<T>::iterator iterator;
- //typedef int (*compare) (T *const&, T *const&);
vector<T> () : __vector<T> ()
{
return this->at (i);
}
- T
- del (vsize i)
- {
- return *__vector<T>::erase (iter (i));
- }
-
T const &
elem (vsize i) const
{
allowed_regions_.insert (before, i);
i++;
}
- allowed_regions_.del (i);
+ allowed_regions_.erase (allowed_regions_.begin () + i);
if (!after.is_empty () && after.length () > 0.0)
{
allowed_regions_.insert (after, i);
g->set_object ("tie", ties_[j]->self_scm ());
accidentals_[i].tied_ = true;
}
- ties_.del (j);
+ ties_.erase (ties_.begin () + j);
break;
}
}
Hara_kiri_group_spanner::consider_suicide (elems[j]);
if (!elems[j]->is_live ())
- elems.del (j);
+ elems.erase (elems.begin () + j);
}
for (vsize j = 0; j < elems.size (); j++)
for (vsize i = stems.size (); i--;)
{
if (Stem::is_invisible (stems[i]))
- stems.del (i);
+ stems.erase (stems.begin () + i);
else
{
if (Direction dir = get_grob_direction (stems[i]))
{
for (vsize i = sol.size (); i--;)
if (sol[i] < 0 || sol[i] > 1)
- sol.del (i);
+ sol.erase (sol.begin () + i);
return sol;
}
if (linewidth_ <= 0)
while (retval.size () > 2)
- retval.del (1);
+ retval.erase (retval.begin () + 1);
return retval;
}
if (linewidth_ <= 0)
while (retval.size () > 2)
- retval.del (1);
+ retval.erase (retval.begin () + 1);
return retval;
}
if (g && sym == g->get_property ("break-align-symbol"))
{
new_elts.push_back (g);
- writable_elts.del (i);
+ writable_elts.erase (writable_elts.begin () + i);
}
}
}
dots.sort (compare_position);
for (vsize i = dots.size (); i--;)
if (!dots[i]->is_live ())
- dots.del (i);
+ dots.erase (dots.begin () + i);
Dot_configuration cfg;
for (vsize i = 0;i < dots.size (); i++)
if (to_dir (d))
{
((to_dir (d) == UP) ? up : down).push_back ((*scripts)[i]);
- scripts->del (i);
+ scripts->erase (scripts->begin () + i);
}
}
if (down_p && !down.size () && scripts->size ())
{
down.push_back ((*scripts)[0]);
- scripts->del (0);
+ scripts->erase (scripts->begin ());
}
horiz.concat (*scripts);
for (vsize i = right.size (); i--;)
{
if (dynamic_cast<Item *> (right[i])->get_column () != mincol)
- right.del (i);
+ right.erase (right.begin () + i);
}
}
Grob *g = array[i];
if (!g || !g->is_live ())
- { // UGH . potentially quadratic.
- array.del (i);
- }
+ /* UGH . potentially quadratic. */
+ array.erase (array.begin () + i);
}
return SCM_UNSPECIFIED;
{
int idx = previous_.find_index (g);
if (idx >= 0)
- previous_.del (idx);
+ previous_.erase (previous_.begin () + idx);
}
void
Tie::set_head (p, RIGHT, h);
ties_.push_back (p);
- heads_to_tie_.del (i);
+ heads_to_tie_.erase (heads_to_tie_.begin () + i);
}
}
}
if (now.main_part_ >= tuplets_[i].stop_)
- tuplets_.del (i);
+ tuplets_.erase (tuplets_.begin () + i);
}
}