Mercurial > hg > octave-nkf
annotate liboctave/str-vec.h @ 15283:a95432e7309c stable release-3-6-3
Version 3.6.3 released.
* configure.ac (AC_INIT): Version is now 3.6.3.
(OCTAVE_RELEASE_DATE): Now 2012-09-04.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Tue, 04 Sep 2012 13:17:13 -0400 |
parents | 72c96de7a403 |
children | 13cc11418393 |
rev | line source |
---|---|
1757 | 1 /* |
2 | |
14138
72c96de7a403
maint: update copyright notices for 2012
John W. Eaton <jwe@octave.org>
parents:
12964
diff
changeset
|
3 Copyright (C) 1996-2012 John W. Eaton |
1757 | 4 |
5 This file is part of Octave. | |
6 | |
7 Octave is free software; you can redistribute it and/or modify it | |
8 under the terms of the GNU General Public License as published by the | |
7016 | 9 Free Software Foundation; either version 3 of the License, or (at your |
10 option) any later version. | |
1757 | 11 |
12 Octave is distributed in the hope that it will be useful, but WITHOUT | |
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
15 for more details. | |
16 | |
17 You should have received a copy of the GNU General Public License | |
7016 | 18 along with Octave; see the file COPYING. If not, see |
19 <http://www.gnu.org/licenses/>. | |
1757 | 20 |
21 */ | |
22 | |
23 #if !defined (octave_str_vec_h) | |
24 #define octave_str_vec_h 1 | |
25 | |
8950
d865363208d6
include <iosfwd> instead of <iostream> in header files
John W. Eaton <jwe@octave.org>
parents:
8920
diff
changeset
|
26 #include <iosfwd> |
5880 | 27 #include <list> |
9582
bdcfb756d721
improve error messages for ambiguous graphics property names
John W. Eaton <jwe@octave.org>
parents:
8950
diff
changeset
|
28 #include <set> |
1757 | 29 #include <string> |
30 | |
31 #include "Array.h" | |
32 | |
33 class | |
6108 | 34 OCTAVE_API |
3504 | 35 string_vector : public Array<std::string> |
1757 | 36 { |
37 public: | |
1879 | 38 |
3504 | 39 string_vector (void) : Array<std::string> () { } |
1879 | 40 |
11570
57632dea2446
attempt better backward compatibility for Array constructors
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
41 explicit string_vector (octave_idx_type n) |
57632dea2446
attempt better backward compatibility for Array constructors
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
42 : Array<std::string> (dim_vector (n, 1)) { } |
1879 | 43 |
11570
57632dea2446
attempt better backward compatibility for Array constructors
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
44 string_vector (const char *s) |
57632dea2446
attempt better backward compatibility for Array constructors
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
45 : Array<std::string> (dim_vector (1, 1), s) { } |
1879 | 46 |
11570
57632dea2446
attempt better backward compatibility for Array constructors
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
47 string_vector (const std::string& s) |
57632dea2446
attempt better backward compatibility for Array constructors
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
48 : Array<std::string> (dim_vector (1, 1), s) { } |
1879 | 49 |
3504 | 50 string_vector (const string_vector& s) : Array<std::string> (s) { } |
1757 | 51 |
5880 | 52 string_vector (const std::list<std::string>& lst); |
53 | |
9582
bdcfb756d721
improve error messages for ambiguous graphics property names
John W. Eaton <jwe@octave.org>
parents:
8950
diff
changeset
|
54 string_vector (const std::set<std::string>& lst); |
bdcfb756d721
improve error messages for ambiguous graphics property names
John W. Eaton <jwe@octave.org>
parents:
8950
diff
changeset
|
55 |
10492
a6b64a7a3769
make feval work with overloaded handles
Jaroslav Hajek <highegg@gmail.com>
parents:
10355
diff
changeset
|
56 string_vector (const Array<std::string>& s) |
a6b64a7a3769
make feval work with overloaded handles
Jaroslav Hajek <highegg@gmail.com>
parents:
10355
diff
changeset
|
57 : Array<std::string> (s.as_column ()) { } |
a6b64a7a3769
make feval work with overloaded handles
Jaroslav Hajek <highegg@gmail.com>
parents:
10355
diff
changeset
|
58 |
2493 | 59 string_vector (const char * const *s); |
60 | |
5275 | 61 string_vector (const char * const *s, octave_idx_type n); |
2493 | 62 |
1757 | 63 string_vector& operator = (const string_vector& s) |
2941 | 64 { |
65 if (this != &s) | |
3504 | 66 Array<std::string>::operator = (s); |
1879 | 67 |
2941 | 68 return *this; |
69 } | |
1757 | 70 |
71 ~string_vector (void) { } | |
72 | |
6379 | 73 bool empty (void) const { return length () == 0; } |
1757 | 74 |
5275 | 75 octave_idx_type max_length (void) const |
2941 | 76 { |
5275 | 77 octave_idx_type n = length (); |
78 octave_idx_type longest = 0; | |
1757 | 79 |
5275 | 80 for (octave_idx_type i = 0; i < n; i++) |
2941 | 81 { |
10312
cbc402e64d83
untabify liboctave header files
John W. Eaton <jwe@octave.org>
parents:
10158
diff
changeset
|
82 octave_idx_type tmp = elem(i).length (); |
1757 | 83 |
10312
cbc402e64d83
untabify liboctave header files
John W. Eaton <jwe@octave.org>
parents:
10158
diff
changeset
|
84 if (tmp > longest) |
cbc402e64d83
untabify liboctave header files
John W. Eaton <jwe@octave.org>
parents:
10158
diff
changeset
|
85 longest = tmp; |
2941 | 86 } |
1757 | 87 |
2941 | 88 return longest; |
89 } | |
1757 | 90 |
10350
12884915a8e4
merge MArray classes & improve Array interface
Jaroslav Hajek <highegg@gmail.com>
parents:
10312
diff
changeset
|
91 void resize (octave_idx_type n, const std::string& rfv = resize_fill_value ()) |
11574
a83bad07f7e3
attempt better backward compatibility for Array resize functions
John W. Eaton <jwe@octave.org>
parents:
11570
diff
changeset
|
92 { |
a83bad07f7e3
attempt better backward compatibility for Array resize functions
John W. Eaton <jwe@octave.org>
parents:
11570
diff
changeset
|
93 Array<std::string>::resize (dim_vector (n, 1), rfv); |
a83bad07f7e3
attempt better backward compatibility for Array resize functions
John W. Eaton <jwe@octave.org>
parents:
11570
diff
changeset
|
94 } |
10350
12884915a8e4
merge MArray classes & improve Array interface
Jaroslav Hajek <highegg@gmail.com>
parents:
10312
diff
changeset
|
95 |
5275 | 96 std::string& operator[] (octave_idx_type i) { return Array<std::string>::elem (i); } |
1757 | 97 |
5275 | 98 std::string operator[] (octave_idx_type i) const { return Array<std::string>::elem (i); } |
1757 | 99 |
8678
e2b4c19c455c
redo changeset 4238f2600a17 with fixes to sorting
Jaroslav Hajek <highegg@gmail.com>
parents:
8671
diff
changeset
|
100 string_vector& sort (bool make_uniq = false); |
2941 | 101 |
102 string_vector& uniq (void); | |
1811 | 103 |
4392 | 104 string_vector& append (const std::string& s); |
105 | |
106 string_vector& append (const string_vector& sv); | |
107 | |
12964
8ec12d686796
new string_vector::join method
John W. Eaton <jwe@octave.org>
parents:
11574
diff
changeset
|
108 std::string join (const std::string& sep = std::string ()) const; |
8ec12d686796
new string_vector::join method
John W. Eaton <jwe@octave.org>
parents:
11574
diff
changeset
|
109 |
2937 | 110 char **c_str_vec (void) const; |
111 | |
112 static void delete_c_str_vec (const char * const*); | |
113 | |
5690 | 114 std::ostream& list_in_columns (std::ostream&, int width = 0) const; |
1757 | 115 }; |
116 | |
117 #endif |