Rogue Wave banner
Previous fileTop of documentContentsIndexNext file

basic_string


Strings Library

Summary

A templatized class for handling sequences of character-like entities. string and wstring are specialized versions of basic_string for char's and wchar_t's, respectively.

Data Type and Member Function Indexes
(exclusive of constructors and destructors)

Synopsis

#include <string>

template <class charT,
          class traits = char_traits<charT>,
          class Allocator = allocator<charT> >

class basic_string;

Description

basic_string<charT, traits, Allocator> is a homogeneous collection of character-like entities that includes string functions such as compare, append, assign, insert, remove, and replace, along with various searches. basic_string also functions as an STL sequence container that provides random access iterators. This allows some of the generic algorithms to apply to strings.

Any underlying character-like type may be used as long as an appropriate char_traits class is included or the default traits class is applicable.

Interface

Constructors

In all cases, the Allocator parameter is used for storage management.

explicit 
basic_string (const Allocator& a = Allocator());
basic_string (const basic_string<T, traits, 
               Allocator>& str);
basic_string (const basic_string& str, size_type pos,
              size_type n= npos, const allocator&
              a=allocator());
basic_string (const charT* s, size_type n,
              const Allocator& a = Allocator());
basic_string (const charT * s, 
              const Allocator& a = Allocator());
basic_string (size_type n, charT c, 
              const Allocator& a = Allocator());
template <class InputIterator>
basic_string (InputIterator first, InputIterator last,
               const Allocator& a = Allocator());

Destructors

~basic_string ();

Operators

basic_string&
operator= (const basic_string& str);
basic_string& 
operator= (const charT * s);
basic_string& 
operator= (charT c);
const_reference 
operator[] (size_type pos) const;
reference 
operator[] (size_type pos);
basic_string& 
operator+= (const basic_string& s);
basic_string& 
operator+= (const charT* s);
basic_string& 
operator+= (charT c);

Iterators

iterator begin ();
const_iterator begin () const;
iterator end ();
const_iterator end () const;
reverse_iterator rbegin ();
const_reverse_iterator rbegin () const;
reverse_iterator rend ();
const_reverse_iterator rend () const;

Allocator

const allocator_type get_allocator () const;

Member Functions

basic_string& 
append (const basic_string& s, size_type pos, 
        size_type npos);
basic_string&
append (const basic_string& s);
basic_string& 
append (const charT* s, size_type n);
basic_string& 
append (const charT* s);
basic_string& 
append (size_type n, charT c );
template<class InputIterator>
basic_string& 
append (InputIterator first, InputIterator last);
basic_string&
assign (const basic_string& s);
basic_string& 
assign (const basic_string& s,
        size_type pos, size_type n);
basic_string& 
assign (const charT* s, size_type n);
basic_string&
assign (const charT* s);
basic_string&
assign (size_type n, charT c );
template<class InputIterator>
basic_string& 
assign (InputIterator first, InputIterator last);
const_reference 
at (size_type pos) const;
reference 
at (size_type pos);
size_type 
capacity () const;
int 
compare (const basic_string& str);
int
compare (size_type pos1, size_type n1, 
         const basic_string& str) const;
int
compare (size_type pos1, size_type n1, 
         const basic_string& str,
         size_type pos2, size_type n2) const;
int 
compare (charT* s) const;
int
compare (size_type pos, size_type n1, charT* s) const;
int
compare (size_type pos, size_type n1, charT* s, 
         size_type n2) const;
size_type 
copy (charT* s, size_type n, size_type pos = 0) const;
const charT* 
c_str () const;
const charT* 
data () const;
bool empty () const;
basic_string& 
erase (size_type pos = 0, size_type n = npos);
iterator 
erase (iterator p);
iterator 
erase (iterator first, iterator last);
size_type 
find (const basic_string& str, size_type pos = 0) const;
size_type
find (const charT* s, size_type pos, size_type n) const;
size_type 
find (const charT* s, size_type pos = 0) const;
size_type 
find (charT c, size_type pos = 0) const;
size_type
find_first_not_of (const basic_string& str,
                   size_type pos = 0) const;
size_type 
find_first_not_of (const charT* s, 
                   size_type pos, size_type n) const;
size_type 
find_first_not_of (const charT* s, 
                   size_type pos = 0) const;
size_type 
find_first_not_of (charT c, size_type pos = 0) const;
size_type
find_first_of(const basic_string& str,
              size_type pos = 0) const;
size_type 
find_first_of(const charT* s, size_type pos,
              size_type n) const;
size_type 
find_first_of(const charT* s, size_type pos = 0) const;
size_type
find_first_of (charT c, size_type pos = 0) const;
size_type 
find_last_not_of(const basic_string& str,
                 size_type pos = npos) const;
size_type 
find_last_not_of(const charT* s,
                 size_type pos, size_type n) const;
size_type 
find_last_not_of(const charT* s, size_type pos = npos) const;
size_type 
find_last_not_of(charT c, size_type pos = npos) const;
size_type 
find_last_of(const basic_string& str,
             size_type pos = npos) const; 
size_type
find_last_of(const charT* s, size_type pos,
             size_type n) const;
size_type 
find_last_of(const charT* s, size_type pos = npos) const;
size_type 
find_last_of(charT c, size_type pos = npos) const;
basic_string&
insert(size_type pos1, const basic_string& s);
basic_string& 
insert(size_type pos, const basic_string& s,
       size_type pos2 = 0, size_type n = npos);
basic_string&
insert(size_type pos, const charT* s, size_type n);
basic_string&
insert(size_type pos, const charT* s);
basic_string& 
insert(size_type pos, size_type n, charT c);
iterator 
insert(iterator p, charT);
void 
insert(iterator p, size_type n, charT c);
template<class InputIterator>
void
insert(iterator p, InputIterator first, InputIterator last);
size_type 
length() const;
size_type 
max_size() const;
size_type 
rfind (const basic_string& str, size_type pos = npos) const;
size_type 
rfind(const charT* s, size_type pos, size_type n) const;
size_type 
rfind(const charT* s, size_type pos = npos) const;
size_type 
rfind(charT c, size_type pos = npos) const;
basic_string&
replace(size_type pos, size_type n1, const basic_string& s);
basic_string& 
replace(size_type pos1, size_type n1, 
        const basic_string& str,
        size_type pos2, size_type n2);
basic_string& 
replace(size_type pos, size_type n1, const charT* s,
        size_type n2);
basic_string& 
replace(size_type pos, size_type n1, const charT* s);
basic_string& 
replace(size_type pos, size_type n1, size_type n2, charT c);
basic_string& 
replace(iterator i1, iterator i2, 
        const basic_string& str);
basic_string& 
replace(iterator i1, iterator i2, const charT* s,
        size_type n);
basic_string& 
replace(iterator i1, iterator i2, const charT* s);
basic_string& 
replace(iterator i1, iterator i2, size_type n,
        charT c);
template<class InputIterator>
basic_string& 
replace(iterator i1, iterator i2,
        InputIterator j1, InputIterator j2);
void 
reserve(size_type res_arg=0);
void
resize(size_type n, charT c);
void
resize(size_type n);
size type
size() const;
basic_string 
substr(size_type pos = 0, size_type n = npos) const;
void 
swap(basic_string& s);

Non-member Operators

template<class charT, class traits, class Allocator>
basic_string 
operator+(const basic_string& lhs, const basic_string& rhs);
template<class charT, class traits, class Allocator>
basic_string
operator+(const charT* lhs, const basic_string& rhs);
template<class charT, class traits, class Allocator>
basic_string
operator+(charT lhs, const basic_string& rhs);
template<class charT, class traits, class Allocator>
basic_string 
operator+(const basic_string& lhs, const charT* rhs);
template<class charT, class traits, class Allocator>
basic_string 
operator+(const basic_string& lhs, charT rhs);
template<class charT, class traits, class Allocator>
bool 
operator==(const basic_string& lhs, 
           const basic_string& rhs);
template<class charT, class traits, class Allocator>
bool   
operator==(const charT* lhs, const basic_string& rhs);
template<class charT, class traits, class Allocator>
bool 
operator==(const basic_string& lhs, const charT* rhs);
template<class charT, class traits, class Allocator>
bool 
operator!=(const basic_string& lhs,
           const basic_string& rhs);
template<class charT, class traits, class Allocator>
bool 
operator!=(const charT* lhs, const basic_string& rhs);
template<class charT, class traits, class Allocator>
bool 
operator!=(const basic_string& lhs, const charT* rhs);
template<class charT, class traits, class Allocator>
bool 
operator<(const basic_string& lhs, const basic_string& rhs);
template<class charT, class traits, class Allocator>
bool 
operator<(const charT* lhs, const basic_string& rhs);
template<class charT, class traits, class Allocator>
bool 
operator<(const basic_string& lhs, const charT* rhs);
template<class charT, class traits, class Allocator>
bool 
operator>(const basic_string& lhs, const basic_string& rhs);
template<class charT, class traits, class Allocator>
bool 
operator>(const charT* lhs, const basic_string& rhs);
template<class charT, class traits, class Allocator>
bool 
operator>(const basic_string& lhs, const charT* rhs);
template<class charT, class traits, class Allocator>
bool 
operator<=(const basic_string& lhs,
             const basic_string& rhs);
template<class charT, class traits, class Allocator>
bool   
operator<=(const charT* lhs, const basic_string& rhs);
template<class charT, class traits, class Allocator>
bool 
operator<=(const basic_string& lhs, const charT* rhs);
template<class charT, class traits, class Allocator>
bool 
operator>=(const basic_string& lhs, 
           const basic_string& rhs);
template<class charT, class traits, class Allocator>
bool 
operator>=(const charT* lhs, const basic_string& rhs);
template<class charT, class traits, class Allocator>
bool 
operator>=(const basic_string& lhs, const charT* rhs);
template <class charT, class traits, class Allocator>
void swap(basic_string<charT,traits,Allocator>& a, 
          basic_string<charT,traits,Allocator>& b); 
template<class charT, class traits, class Allocator>
basic_istream<charT, traits>&
operator>>(basic_istream<charT, traits>& is, 
           basic_string& str);
template<class charT, class traits, class Allocator>
basic_ostream<charT, traits>&
operator<<(basic_ostream <charT, traits>& os, 
           const<charT, traits allocator> str);

Non-member Functions

template <class Stream, class charT, class traits,
          class Allocator>
basic_istream<charT, traits>
getline(basic_istream<charT, traits> is, 
        <charT, traits allocator> str, charT delim);

Example

Program Output

See Also

allocator, string



Previous fileTop of documentContentsIndexNext file
©Copyright 1998, Rogue Wave Software, Inc.
Send mail to report errors or comment on the documentation.
OEM Release, June 1998