changeset 1757:949303ac0fa1

[project @ 1996-01-22 04:55:29 by jwe] Initial revision
author jwe
date Mon, 22 Jan 1996 04:55:29 +0000
parents 1af643fa00e3
children 60810e735100
files liboctave/Array-str.cc liboctave/str-vec.h
diffstat 2 files changed, 125 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/liboctave/Array-str.cc	Mon Jan 22 04:55:29 1996 +0000
@@ -0,0 +1,38 @@
+// Array-str.cc                                        -*- C++ -*-
+/*
+
+Copyright (C) 1996 John W. Eaton
+
+This file is part of Octave.
+
+Octave 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 2, or (at your option) any
+later version.
+
+Octave 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 Octave; see the file COPYING.  If not, write to the Free
+Software Foundation, 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+
+*/
+
+// Instantiate Arrays of strings.
+
+#include "Array.h"
+#include "Array.cc"
+
+#include <string>
+
+template class Array<string>;
+
+/*
+;;; Local Variables: ***
+;;; mode: C++ ***
+;;; page-delimiter: "^/\\*" ***
+;;; End: ***
+*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/liboctave/str-vec.h	Mon Jan 22 04:55:29 1996 +0000
@@ -0,0 +1,87 @@
+// str-vec.h                                            -*- C -*-
+/*
+
+Copyright (C) 1996 John W. Eaton
+
+This file is part of Octave.
+
+Octave 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 2, or (at your option) any
+later version.
+
+Octave 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 Octave; see the file COPYING.  If not, write to the Free
+Software Foundation, 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+
+*/
+
+#if !defined (octave_str_vec_h)
+#define octave_str_vec_h 1
+
+#include <string>
+
+#include "Array.h"
+
+static int
+str_vec_compare (const string *a, const string *b)
+{
+  return a->compare (*b);
+}
+
+class
+string_vector : public Array<string>
+{
+public:
+  string_vector (void) : Array<string> () { }
+  string_vector (int n) : Array<string> (n) { }
+  string_vector (const char *s) : Array<string> (1, s) { }
+  string_vector (const string& s) : Array<string> (1, s) { }
+  string_vector (const string_vector& s) : Array<string> (s) { }
+
+  string_vector& operator = (const string_vector& s)
+    {
+      Array<string>::operator = (s);
+      return *this;
+    }
+
+  ~string_vector (void) { }
+
+  int empty (void) { return length () == 0; }
+
+  int max_length (void) const
+    {
+      int n = length ();
+      int longest = 0;
+
+      for (int i = 0; i < n; i++)
+	{
+	  int tmp = elem(i).length ();
+
+	  if (tmp > longest)
+	    longest = tmp;
+	}
+
+      return longest;
+    }
+
+  string& operator[] (int i) { return Array<string>::elem (i); }
+
+  string operator[] (int i) const { return Array<string>::elem (i); }
+
+  void qsort (void) { Array<string>::qsort (str_vec_compare); }
+};
+
+#endif
+
+/*
+;;; Local Variables: ***
+;;; mode: C++ ***
+;;; page-delimiter: "^/\\*" ***
+;;; End: ***
+*/