annotate liboctave/str-vec.h @ 1811:3031937966fb

[project @ 1996-01-29 07:30:21 by jwe]
author jwe
date Mon, 29 Jan 1996 07:30:21 +0000
parents e090f89bf2f5
children 1b43d3c06c04
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1757
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
1 // str-vec.h -*- C -*-
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
2 /*
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
3
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
4 Copyright (C) 1996 John W. Eaton
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
5
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
6 This file is part of Octave.
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
7
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
8 Octave is free software; you can redistribute it and/or modify it
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
9 under the terms of the GNU General Public License as published by the
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
10 Free Software Foundation; either version 2, or (at your option) any
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
11 later version.
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
12
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
13 Octave is distributed in the hope that it will be useful, but WITHOUT
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
15 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
16 for more details.
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
17
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
18 You should have received a copy of the GNU General Public License
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
19 along with Octave; see the file COPYING. If not, write to the Free
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
20 Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
21
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
22 */
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
23
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
24 #if !defined (octave_str_vec_h)
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
25 #define octave_str_vec_h 1
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
26
1811
3031937966fb [project @ 1996-01-29 07:30:21 by jwe]
jwe
parents: 1781
diff changeset
27 class ostream;
3031937966fb [project @ 1996-01-29 07:30:21 by jwe]
jwe
parents: 1781
diff changeset
28
1757
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
29 #include <string>
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
30
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
31 #include "Array.h"
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
32
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
33 static int
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
34 str_vec_compare (const string *a, const string *b)
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
35 {
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
36 return a->compare (*b);
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
37 }
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
38
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
39 class
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
40 string_vector : public Array<string>
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
41 {
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
42 public:
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
43 string_vector (void) : Array<string> () { }
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
44 string_vector (int n) : Array<string> (n) { }
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
45 string_vector (const char *s) : Array<string> (1, s) { }
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
46 string_vector (const string& s) : Array<string> (1, s) { }
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
47 string_vector (const string_vector& s) : Array<string> (s) { }
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
48
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
49 string_vector& operator = (const string_vector& s)
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
50 {
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
51 Array<string>::operator = (s);
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
52 return *this;
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
53 }
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
54
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
55 ~string_vector (void) { }
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
56
1811
3031937966fb [project @ 1996-01-29 07:30:21 by jwe]
jwe
parents: 1781
diff changeset
57 int empty (void) const { return length () == 0; }
1757
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
58
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
59 int max_length (void) const
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
60 {
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
61 int n = length ();
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
62 int longest = 0;
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
63
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
64 for (int i = 0; i < n; i++)
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
65 {
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
66 int tmp = elem(i).length ();
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
67
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
68 if (tmp > longest)
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
69 longest = tmp;
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
70 }
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
71
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
72 return longest;
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
73 }
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
74
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
75 string& operator[] (int i) { return Array<string>::elem (i); }
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
76
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
77 string operator[] (int i) const { return Array<string>::elem (i); }
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
78
1781
e090f89bf2f5 [project @ 1996-01-24 08:04:14 by jwe]
jwe
parents: 1757
diff changeset
79 string_vector& qsort (void)
e090f89bf2f5 [project @ 1996-01-24 08:04:14 by jwe]
jwe
parents: 1757
diff changeset
80 {
e090f89bf2f5 [project @ 1996-01-24 08:04:14 by jwe]
jwe
parents: 1757
diff changeset
81 Array<string>::qsort (str_vec_compare);
e090f89bf2f5 [project @ 1996-01-24 08:04:14 by jwe]
jwe
parents: 1757
diff changeset
82 return *this;
e090f89bf2f5 [project @ 1996-01-24 08:04:14 by jwe]
jwe
parents: 1757
diff changeset
83 }
1811
3031937966fb [project @ 1996-01-29 07:30:21 by jwe]
jwe
parents: 1781
diff changeset
84
3031937966fb [project @ 1996-01-29 07:30:21 by jwe]
jwe
parents: 1781
diff changeset
85 ostream& list_in_columns (ostream&) const;
1757
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
86 };
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
87
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
88 #endif
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
89
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
90 /*
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
91 ;;; Local Variables: ***
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
92 ;;; mode: C++ ***
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
93 ;;; page-delimiter: "^/\\*" ***
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
94 ;;; End: ***
949303ac0fa1 [project @ 1996-01-22 04:55:29 by jwe]
jwe
parents:
diff changeset
95 */