From 74e6dbadf4e53ca1bb8095d5416a013305489c62 Mon Sep 17 00:00:00 2001 From: wolf Date: Tue, 30 Mar 2004 14:45:34 +0000 Subject: [PATCH] More doc and fix problems with begin(r) git-svn-id: https://svn.dealii.org/trunk@8918 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/lac/include/lac/sparse_matrix.h | 42 +++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/deal.II/lac/include/lac/sparse_matrix.h b/deal.II/lac/include/lac/sparse_matrix.h index 85aedb4877..2b1930bc25 100644 --- a/deal.II/lac/include/lac/sparse_matrix.h +++ b/deal.II/lac/include/lac/sparse_matrix.h @@ -1214,6 +1214,14 @@ class SparseMatrix : public virtual Subscriptor * STL-like iterator with the first entry * of row r. This is the version * for constant matrices. + * + * Note that if the given row is empty, + * i.e. does not contain any nonzero + * entries, then the iterator returned by + * this function equals + * end(r). Note also that the + * iterator may not be dereferencable in + * that case. */ const_iterator begin (const unsigned int r) const; @@ -1221,6 +1229,13 @@ class SparseMatrix : public virtual Subscriptor * Final iterator of row * r. This is the version for * constant matrices. + * + * Note that the end iterator is not + * necessarily dereferencable. This is in + * particular the case if the row after + * the one for which this is the end + * iterator is empty, or if it is the end + * iterator for the last row of a matrix. */ const_iterator end (const unsigned int r) const; @@ -1228,6 +1243,14 @@ class SparseMatrix : public virtual Subscriptor * STL-like iterator with the first entry * of row r. This is the version * for non-constant matrices. + * + * Note that if the given row is empty, + * i.e. does not contain any nonzero + * entries, then the iterator returned by + * this function equals + * end(r). Note also that the + * iterator may not be dereferencable in + * that case. */ iterator begin (const unsigned int r); @@ -1235,6 +1258,13 @@ class SparseMatrix : public virtual Subscriptor * Final iterator of row * r. This is the version for * non-constant matrices. + * + * Note that the end iterator is not + * necessarily dereferencable. This is in + * particular the case if the row after + * the one for which this is the end + * iterator is empty, or if it is the end + * iterator for the last row of a matrix. */ iterator end (const unsigned int r); @@ -2096,7 +2126,11 @@ typename SparseMatrix::const_iterator SparseMatrix::begin (const unsigned int r) const { Assert (rrow_length(r) > 0) + return const_iterator(this, r, 0); + else + return end (r); } @@ -2118,7 +2152,11 @@ typename SparseMatrix::iterator SparseMatrix::begin (const unsigned int r) { Assert (rrow_length(r) > 0) + return iterator(this, r, 0); + else + return end (r); } -- 2.39.5