Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Class template basic_string

Boost , The Boost C++ Libraries BoostBook Documentation Subset , Boost.Container Header Reference

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Class template basic_string

boost::container::basic_string

Synopsis

// In header: <boost/container/string.hpp>
template<typename CharT, typename Traits = std::char_traits<CharT>, 
         typename Allocator = new_allocator<CharT> > 
class basic_string {
public:
  // types
  typedef Traits                                                             traits_type;           
  typedef CharT                                                              value_type;            
  typedef ::boost::container::allocator_traits< Allocator >::pointer         pointer;               
  typedef ::boost::container::allocator_traits< Allocator >::const_pointer   const_pointer;         
  typedef ::boost::container::allocator_traits< Allocator >::reference       reference;             
  typedef ::boost::container::allocator_traits< Allocator >::const_reference const_reference;       
  typedef ::boost::container::allocator_traits< Allocator >::size_type       size_type;             
  typedef ::boost::container::allocator_traits< Allocator >::difference_type difference_type;       
  typedef Allocator                                                          allocator_type;        
  typedef implementation_defined                                             stored_allocator_type; 
  typedef implementation_defined                                             iterator;              
  typedef implementation_defined                                             const_iterator;        
  typedef implementation_defined                                             reverse_iterator;      
  typedef implementation_defined                                             const_reverse_iterator;
  // construct/copy/destruct
  basic_string() noexcept(container_detail::is_nothrow_default_constructible< Allocator >::value));
  explicit basic_string(const allocator_type &) noexcept;
  basic_string(const basic_string &);
  basic_string(basic_string &&) noexcept;
  basic_string(const basic_string &, const allocator_type &);
  basic_string(basic_string &&, const allocator_type &);
  basic_string(const basic_string &, size_type, size_type = npos);
  basic_string(const basic_string &, size_type, size_type, 
               const allocator_type &);
  basic_string(const CharT *, size_type);
  basic_string(const CharT *, size_type, const allocator_type &);
  basic_string(const CharT *);
  basic_string(const CharT *, const allocator_type &);
  basic_string(size_type, CharT);
  basic_string(size_type, CharT, const allocator_type &);
  basic_string(size_type, default_init_t);
  basic_string(size_type, default_init_t, const allocator_type &);
  template<typename InputIterator> basic_string(InputIterator, InputIterator);
  template<typename InputIterator> 
    basic_string(InputIterator, InputIterator, const allocator_type &);
  basic_string & operator=(const basic_string &);
  basic_string & 
  operator=(basic_string &&) noexcept(allocator_traits_type::propagate_on_container_move_assignment::value||allocator_traits_type::is_always_equal::value));
  basic_string & operator=(const CharT *);
  basic_string & operator=(CharT);
  ~basic_string();
  // public member functions
  allocator_type get_allocator() const noexcept;
  stored_allocator_type & get_stored_allocator() noexcept;
  const stored_allocator_type & get_stored_allocator() const noexcept;
  iterator begin() noexcept;
  const_iterator begin() const noexcept;
  iterator end() noexcept;
  const_iterator end() const noexcept;
  reverse_iterator rbegin() noexcept;
  const_reverse_iterator rbegin() const noexcept;
  reverse_iterator rend() noexcept;
  const_reverse_iterator rend() const noexcept;
  const_iterator cbegin() const noexcept;
  const_iterator cend() const noexcept;
  const_reverse_iterator crbegin() const noexcept;
  const_reverse_iterator crend() const noexcept;
  bool empty() const noexcept;
  size_type size() const noexcept;
  size_type length() const noexcept;
  size_type max_size() const noexcept;
  void resize(size_type, CharT);
  void resize(size_type);
  void resize(size_type, default_init_t);
  size_type capacity() const noexcept;
  void reserve(size_type);
  void shrink_to_fit();
  reference front() noexcept;
  const_reference front() const noexcept;
  reference back() noexcept;
  const_reference back() const noexcept;
  reference operator[](size_type) noexcept;
  const_reference operator[](size_type) const noexcept;
  reference at(size_type);
  const_reference at(size_type) const;
  basic_string & operator+=(const basic_string &);
  basic_string & operator+=(const CharT *);
  basic_string & operator+=(CharT);
  basic_string & append(const basic_string &);
  basic_string & append(const basic_string &, size_type, size_type);
  basic_string & append(const CharT *, size_type);
  basic_string & append(const CharT *);
  basic_string & append(size_type, CharT);
  template<typename InputIter> basic_string & append(InputIter, InputIter);
  void push_back(CharT);
  basic_string & assign(const basic_string &);
  basic_string & assign(basic_string &&) noexcept;
  basic_string & assign(const basic_string &, size_type, size_type);
  basic_string & assign(const CharT *, size_type);
  basic_string & assign(const CharT *);
  basic_string & assign(size_type, CharT);
  basic_string & assign(const CharT *, const CharT *);
  template<typename InputIter> basic_string & assign(InputIter, InputIter);
  basic_string & insert(size_type, const basic_string &);
  basic_string & insert(size_type, const basic_string &, size_type, size_type);
  basic_string & insert(size_type, const CharT *, size_type);
  basic_string & insert(size_type, const CharT *);
  basic_string & insert(size_type, size_type, CharT);
  iterator insert(const_iterator, CharT);
  iterator insert(const_iterator, size_type, CharT);
  template<typename InputIter> 
    iterator insert(const_iterator, InputIter, InputIter);
  void pop_back() noexcept;
  basic_string & erase(size_type = 0, size_type = npos);
  iterator erase(const_iterator) noexcept;
  iterator erase(const_iterator, const_iterator) noexcept;
  void clear() noexcept;
  basic_string & replace(size_type, size_type, const basic_string &);
  basic_string & 
  replace(size_type, size_type, const basic_string &, size_type, size_type);
  basic_string & replace(size_type, size_type, const CharT *, size_type);
  basic_string & replace(size_type, size_type, const CharT *);
  basic_string & replace(size_type, size_type, size_type, CharT);
  basic_string & replace(const_iterator, const_iterator, const basic_string &);
  basic_string & 
  replace(const_iterator, const_iterator, const CharT *, size_type);
  basic_string & replace(const_iterator, const_iterator, const CharT *);
  basic_string & replace(const_iterator, const_iterator, size_type, CharT);
  template<typename InputIter> 
    basic_string & 
    replace(const_iterator, const_iterator, InputIter, InputIter);
  size_type copy(CharT *, size_type, size_type = 0) const;
  void swap(basic_string &) noexcept(allocator_traits_type::propagate_on_container_swap::value||allocator_traits_type::is_always_equal::value));
  const CharT * c_str() const noexcept;
  const CharT * data() const noexcept;
  size_type find(const basic_string &, size_type = 0) const;
  size_type find(const CharT *, size_type, size_type) const;
  size_type find(const CharT *, size_type = 0) const;
  size_type find(CharT, size_type = 0) const;
  size_type rfind(const basic_string &, size_type = npos) const;
  size_type rfind(const CharT *, size_type, size_type) const;
  size_type rfind(const CharT *, size_type = npos) const;
  size_type rfind(CharT, size_type = npos) const;
  size_type find_first_of(const basic_string &, size_type = 0) const;
  size_type find_first_of(const CharT *, size_type, size_type) const;
  size_type find_first_of(const CharT *, size_type = 0) const;
  size_type find_first_of(CharT, size_type = 0) const;
  size_type find_last_of(const basic_string &, size_type = npos) const;
  size_type find_last_of(const CharT *, size_type, size_type) const;
  size_type find_last_of(const CharT *, size_type = npos) const;
  size_type find_last_of(CharT, size_type = npos) const;
  size_type find_first_not_of(const basic_string &, size_type = 0) const;
  size_type find_first_not_of(const CharT *, size_type, size_type) const;
  size_type find_first_not_of(const CharT *, size_type = 0) const;
  size_type find_first_not_of(CharT, size_type = 0) const;
  size_type find_last_not_of(const basic_string &, size_type = npos) const;
  size_type find_last_not_of(const CharT *, size_type, size_type) const;
  size_type find_last_not_of(const CharT *, size_type = npos) const;
  size_type find_last_not_of(CharT, size_type = npos) const;
  basic_string substr(size_type = 0, size_type = npos) const;
  int compare(const basic_string &) const;
  int compare(size_type, size_type, const basic_string &) const;
  int compare(size_type, size_type, const basic_string &, size_type, 
              size_type) const;
  int compare(const CharT *) const;
  int compare(size_type, size_type, const CharT *, size_type) const;
  int compare(size_type, size_type, const CharT *) const;
  // public data members
  static const size_type npos;
};

Description

Basic_stringКласс представляет собой последовательность символов. Он содержит все обычные операции последовательности, а также стандартные операции строки, такие как поиск и сцепление.

Основная_струнаКласс параметризуется по типу символа и по характерным чертам этого типа.

Этот класс имеет характеристики производительности, очень похожие на вектор<>, что означает, например, что он не выполняет счет ссылок или копирование на запись, и что сцепление двух строк является операцией O(N).

Некоторые изBasic_stringФункции членов используют необычный метод определения позиций и диапазонов. В дополнение к обычному методу с использованием итераторов, многие из функцийbasic_string's используют одно значение pos типа size_type для представления позиции (в этом случае позиция начинается() + pos, и многие изbasic_string).Функции-члены используют два значения, pos и n, для представления диапазона. В этом случае pos — начало диапазона, а n — его размер. То есть, диапазон [начинается() + пос, начинается() + пос+n).

Обратите внимание, что стандарт C++ не определяет сложность операцийbasic_string. В этой реализацииbasic_stringимеет характеристики производительности, очень похожие на векторные: доступ к одному символу — O(1), а копирование и конкатенация — O(N).

В этой реализации, start(), end(), rbegin(), rend(), operator[], c_str() и data() не признают итераторы недействительными. В этой реализации итераторы недействительны только функциями-членами, которые явно изменяют содержимое строки.

Template Parameters

  1. typenameCharT

    Тип характера, который он содержит.

  2. typenameTraits=std::char_traits<CharT>

    Тип черт характера, который инкапсулирует основные операции характера

  3. typenameAllocator=new_allocator<CharT>

    Распределитель, используемый для управления внутренней памятью.

basic_string public construct/copy/destruct

  1. basic_string()noexcept(container_detail::is_nothrow_default_constructible<Allocator>::value));

    Эффекты: По умолчанию строитсяbasic_string

    .Бросает: Если проигрывает конструктор по умолчанию Allocator_type.

  2. explicitbasic_string(constallocator_type&a)noexcept;

    Эффекты: Конструируетbasic_string, принимая распределитель в качестве параметра.

    Бросает: Ничего

  3. basic_string(constbasic_string&s);

    Эффекты: Копия конструируетbasic_string.

    Посткондиционер: x == *это.

    Бросает: Если проигрывает конструктор по умолчанию Allocator_type или распределение.

  4. basic_string(basic_string&&s)noexcept;

    Эффекты: Переместите конструктор. Перемещает ресурсы на *это.

    Бросает: Ничего.

    Сложность: Постоянно.

  5. basic_string(constbasic_string&s,constallocator_type&a);

    Эффекты: Копия конструируетbasic_stringс помощью указанного распределителя.

    Посткондиционер: x == *это.

    Бросок: Если выделение бросит.

  6. basic_string(basic_string&&s,constallocator_type&a);

    Эффекты: Переместить конструктор с помощью указанного распределителя.

    Бросает:

    Сложность: Постоянная, если a == s.get_allocator(), линейная иначе.

  7. basic_string(constbasic_string&s,size_typepos,size_typen=npos);

    Эффекты: Конструирует abasic_stringс выделением, построенным по умолчанию, и инициализируется определенным числом символов строки.

  8. basic_string(constbasic_string&s,size_typepos,size_typen,
                constallocator_type&a);

    Эффекты: Конструируетbasic_string, принимая распределитель в качестве параметра, и инициализируется определенным числом символов строки.

  9. basic_string(constCharT*s,size_typen);

    Эффекты: Конструируетbasic_string, принимая построенный по умолчанию распределитель, и инициализируется определенным числом символов c-струны.

  10. basic_string(constCharT*s,size_typen,constallocator_type&a);

    Эффекты: Конструируетbasic_string, принимая распределитель в качестве параметра, и инициализируется определенным числом символов c-струны.

  11. basic_string(constCharT*s);

    Эффекты: Конструирует abasic_stringс построенным по умолчанию распределителем и инициализируется нулевой s c-струной.

  12. basic_string(constCharT*s,constallocator_type&a);

    Эффекты: Построение аbasic_stringпринимает распределитель в качестве параметра и инициализируется нулевой s c-струной.

  13. basic_string(size_typen,CharTc);

    Эффекты: Конструируетbasic_stringс построенным по умолчанию распределителем и инициализируется n копий c.

  14. basic_string(size_typen,CharTc,constallocator_type&a);

    Эффекты: Конструируетbasic_string, принимая распределитель в качестве параметра, и инициализируется n копий c.

  15. basic_string(size_typen,default_init_t);

    Эффекты: Конструируетbasic_stringс аллокатором, построенным по умолчанию, и инициализируется n инициализированными по умолчанию символами.

  16. basic_string(size_typen,default_init_t,constallocator_type&a);

    Эффекты: Построение abasic_stringпринимает распределитель в качестве параметра и инициализируется n инициализируемых по умолчанию символов.

  17. Эффекты: Строкиbasic_string[БЕГИН]

    template<typenameInputIterator>
     basic_string(InputIteratorf,InputIteratorl);

    [Эффекты]

    [ORIG_END] -->
  18. template<typenameInputIterator>
     basic_string(InputIteratorf,InputIteratorl,constallocator_type&a);

    Эффекты: Конструируетbasic_string, принимая в качестве параметра распределитель и ряд итераторов.

  19. basic_string&operator=(constbasic_string&x);

    Эффекты: Копия конструирует строку.

    Посткондиция: x == *это.

    Сложность: Линейные элементы, содержащие x.

  20. basic_string&
    operator=(basic_string&&x)noexcept(allocator_traits_type::propagate_on_container_move_assignment::value||allocator_traits_type::is_always_equal::value));

    Эффекты: Переместите конструктор. Переносит ресурсы x на *это.

    Бросает: Если аллокатор_traits_type::propagate_on_container_move_assignment является ложным и выделение бросает

    Сложность: Постоянный, если allocator_traits_type:: propagate_on_container_move_assignment is true or this->get>allocator() == x.get_allocator(). Линейное иначе.

  21. basic_string&operator=(constCharT*s);
    Эффекты: Назначение из нулевой с-струны.
  22. basic_string&operator=(CharTc);
    Эффекты: Назначение от характера.
  23. ~basic_string();

    Эффекты: Уничтожаетbasic_string. Вся используемая память размещается.

    Бросок: Ничего.

    Сложность: Постоянная.

basic_string public member functions

  1. allocator_typeget_allocator()constnoexcept;

    Эффекты: Возвращает копию внутреннего распределителя.

    Бросает: Если копировщик распределителя бросает.

    Сложность: Постоянная.

  2. Эффекты:

    Бросает: Ничего

    :

    Примечание:

    [ORIG_END] -->
  3. conststored_allocator_type&get_stored_allocator()constnoexcept;

    Эффекты: Возвращает ссылку на внутренний распределитель.

    Бросает: Ничто

    Сложность: Константа.

    Примечание: Нестандартное расширение.

  4. iteratorbegin()noexcept;

    Эффекты: Возвращает итератор к первому элементу, содержащемуся в векторе.

    Бросает: Ничего.

    Сложность: Постоянная.

  5. Эффекты: Описание

    Броски: Ничего.

    Вращение:

    [ORIG_END] -->
  6. iteratorend()noexcept;

    Эффекты: Возвращает итератор к концу вектора.

    Бросает: Ничего.

    Сложность: Постоянная.

  7. Эффекты: Описание

    Броски: Ничего.

    [ORIG_END] -->
  8. reverse_iteratorrbegin()noexcept;

    Эффекты: Возвращает обратный_iterator, указывающий на начало обратного вектора.

    Бросает: Ничего.

    Сложность: Постоянная.

  9. const_reverse_iteratorrbegin()constnoexcept;

    Эффекты: Возвращает const_reverse_iterator, указывающий на начало обратного вектора.

    Бросок: Ничего.

    Сложность: Постоянная.

  10. reverse_iteratorrend()noexcept;

    Эффекты: Возвращает обратный_iterator, указывающий на конец обратного вектора.

    Бросает: Ничего.

    Сложность: Постоянная.

  11. const_reverse_iteratorrend()constnoexcept;

    Эффекты: Возвращает const_reverse_iterator, указывающий на конец обратного вектора.

    Бросает: Ничего.

    Сложность: Постоянная.

  12. const_iteratorcbegin()constnoexcept;

    Эффекты: Возвращает const_iterator к первому элементу вектора.

    Бросок:

    Сложность: Постоянная.

  13. const_iteratorcend()constnoexcept;

    Эффекты: Возвращает const_iterator к концу вектора.

    Бросает: Ничего.

    Сложность: Постоянная.

  14. const_reverse_iteratorcrbegin()constnoexcept;

    Эффекты: Возвращает const_reverse_iterator, указывающий на начало обратного вектора.

    Бросает: Ничего.

    Сложность: Постоянная.

  15. const_reverse_iteratorcrend()constnoexcept;

    Эффекты: Возвращает const_reverse_iterator, указывающий на конец обратного вектора.

    Бросает: Ничего.

    Сложность: Постоянно.

  16. boolempty()constnoexcept;

    Эффекты: Возвращается, если вектор не содержит элементов.

    Бросок: Ничего.

    Сложность: Постоянно.

  17. Эффекты:

    Бросок: Ничего.

    [ORIG_END] -->
  18. size_typelength()constnoexcept;

    Эффекты: Возвращает число элементов, содержащихся в векторе.

    Бросок: Ничего.

    Сложность: Постоянно.

  19. size_typemax_size()constnoexcept;

    Эффекты: Возвращает наибольший возможный размер вектора.

    Бросает: Ничего.

    Сложность: Постоянная.

  20. voidresize(size_typen,CharTc);

    Эффекты: Вставляет или стирает элементы в конце так, что размер становится n. Новые элементы сконструированы из x.

    Броски: Если выделение памяти бросает

    Сложность: Линейная разница между размером () и новым размером.

  21. voidresize(size_typen);

    Эффекты: Вставляет или стирает элементы в конце так, что размер становится n. Новые элементы инициализируются.

    Бросок: Если выделение памяти бросает

    Сложность: Линейная разница между размером () и новым размером.

  22. voidresize(size_typen,default_init_t);

    Эффекты: Вставляет или стирает элементы в конце так, что размер становится n. Новые элементы неинициализированы.

    Бросок: Если выделение памяти бросает

    Сложность: Линейная разница между размером () и новым размером.

    Примечание: Нестандартное расширение

  23. Эффекты: ???????????? (a)()()()()()()()()).

    Бросок:

    :

    [ORIG_END] -->
  24. voidreserve(size_typeres_arg);

    Эффекты: Если n меньше или равно емкости(), этот вызов не имеет эффекта. В противном случае это запрос на выделение дополнительной памяти. Если запрос является успешным, то емкость () больше или равна n; в противном случае емкость () не изменяется. В любом случае размер () не изменился.

    Бросок: Если выделение памяти отбрасывает

  25. voidshrink_to_fit();

    Эффекты: Пытается справиться с избытком памяти, созданной с помощью предыдущих выделений. Размер струны не изменился

    Бросок: Ничто

    Сложность: Линейный размер().

  26. referencefront()noexcept;

    Требует:!empty()

    Эффекты: Возвращает ссылку на первый элемент контейнера.

    Бросок: Ничего.

    Сложность: Постоянная.

  27. const_referencefront()constnoexcept;

    Требует:!empty()

    Эффекты: Возвращает ссылку на первый элемент контейнера.

    Бросает: Ничего.

    Сложность: Постоянная.

  28. referenceback()noexcept;

    Требует:!empty()

    : Возвращает ссылку на последний элемент контейнера.

    Бросает:

    Сложность: Постоянная.

  29. const_referenceback()constnoexcept;

    Требует:!empty()

    Эффекты: Возвращает ссылку на последний элемент контейнера.

    Бросок: Ничего.

    Сложность: Постоянная.

  30. referenceoperator[](size_typen)noexcept;

    Требует: размер() >n.

    Эффекты: Возвращает ссылку на n-й элемент из начала контейнера.

    Бросок: Ничего.

    Сложность: Постоянная.

  31. const_referenceoperator[](size_typen)constnoexcept;

    Требует: размер() >n.

    Эффекты: Возвращает ссылку на n-й элемент из начала контейнера.

    Бросок: Ничего.

    Сложность: Постоянная.

  32. referenceat(size_typen);

    Требует: размер() >n.

    Эффекты: Возвращает ссылку на n-й элемент из начала контейнера.

    Бросок: Разработчик:range_error если n>= размер()

    Сложность: Постоянная.

  33. const_referenceat(size_typen)const;

    Требует: размер() >n.

    Эффекты: Возвращает ссылку на n-й элемент из начала контейнера.

    Бросок: Разработчик:range_error если n>= размер()

    Сложность: Постоянная.

  34. basic_string&operator+=(constbasic_string&s);

    Эффекты: Вызовы append (str.data, str.size()).

    Возвращение: Это

  35. basic_string&operator+=(constCharT*s);

    Эффекты: Звонки в приложение(ы).

    Возвращение: Это

  36. basic_string&operator+=(CharTc);

    Эффекты: Звонки в приложение (1, c).

    Возвращение: *это

  37. basic_string&append(constbasic_string&s);

    Эффекты: Вызовы append(str.data(), str.size()).

    Возвращение: *это

  38. basic_string&append(constbasic_string&s,size_typepos,size_typen);

    Требует: pos<= str.size()

    Эффекты: Определяет эффективную длину длинны строки для приложения как меньшую из n и str.size() - pos и вызывает приложение(str.data() + pos, rlen).

    Броски: Если выделение памяти выбрасывает и выходит из диапазона, если pos >str.size()

    Возвращается: *это

  39. basic_string&append(constCharT*s,size_typen);

    Требует: s указывает на массив по меньшей мере n элементов CharT.

    Эффекты: Функция заменяет строку, управляемую *этим, строкой размера длины () + n, чьи элементы размера жажда () являются копией исходной строки, управляемой *этим, и чьи оставшиеся элементы являются копией исходных n элементов s.

    Бросок: Если выделение памяти выбрасывает long_error, если размер() + n>max_size().

    Возвращение: *это

  40. basic_string&append(constCharT*s);

    Требует: s указывает на массив по меньшей мере признаков:: длина(ы) + 1 элемент CharT.

    Эффекты: Приложения (приложения, признаки:: длина(ы)).

    Возвращение: *это

  41. basic_string&append(size_typen,CharTc);

    Эффекты: Эквивалент добавления (basic_string(n, c)).

    Возврат: *это

  42. template<typenameInputIter>
     basic_string&append(InputIterfirst,InputIterlast);

    Требует: [первый, последний] является допустимым диапазоном.

    : Эквивалент добавления (базовая_струна (первая, последняя)).

    Возвращение: *это

  43. voidpush_back(CharTc);
    Эффекты: Эквивалент приложения (static_cast(1), c).
  44. basic_string&assign(constbasic_string&s);

    Эффекты:

    Возвращение: Это

  45. basic_string&assign(basic_string&&ms)noexcept;

    Эффекты: Функция заменяет строку, управляемую *, строкой длины str.size(), элементы которой являются копией строки, управляемой str.

    Бросает: Ничего

    Возвращается: *это

  46. basic_string&assign(constbasic_string&s,size_typepos,size_typen);

    Требует: pos<= str.size()

    : Определяет эффективную длину rlen строки для присвоения как меньшей из n и str.size() - pos и вызовов assign(str.data() + pos rlen).

    Бросок: Если выделение памяти выбрасывает или выходит из диапазона, если pos >str.size().

    Возвращение: Это

  47. basic_string&assign(constCharT*s,size_typen);

    Требует: s указывает на массив по меньшей мере n элементов CharT.

    Эффекты: Заменяет строку, управляемую этим, строкой длины n, элементы которой являются копией тех, на которые указывает s.

    Бросает: Если выделение памяти бросает или длина_ошибка, если n >max_size().

    Возвращение: Это

  48. basic_string&assign(constCharT*s);

    Требует: s указывает на массив по меньшей мере признаков:: длина(ы) + 1 элемент CharT.

    Эффекты: Звонки присваиваются (s, traits::length(s)).

    Возвращение: Это

  49. basic_string&assign(size_typen,CharTc);

    Эффекты: Эквивалент присвоения (basic_string(n, c)).

    Возвращение: Это

  50. basic_string&assign(constCharT*first,constCharT*last);

    Эффекты: Эквивалент присвоения (basic_string (first, last)).Возвращение: *это

  51. template<typenameInputIter>
     basic_string&assign(InputIterfirst,InputIterlast);

    Эффекты: Эквивалент присвоения (basic_string (first, last)).

    Возвращение: Это

  52. basic_string&insert(size_typepos,constbasic_string&s);

    Требуется: pos<= size().

    Эффекты: Вызовы вставить (pos, str.data(), str.size()).

    Броски: Если выделение памяти выбрасывает или выходит из диапазона, если pos >размер().

    Возвращение: *это

  53. basic_string&
    insert(size_typepos1,constbasic_string&s,size_typepos2,size_typen);

    Требуется: pos1<= size() и pos2<= str.size()

    : Определяет эффективную длину длинны строки для вставки как меньшую из n и str.size() - pos2 и вызывает вставку(pos1, str.data() + pos2, rlen).

    Броски: Если выделение памяти выбрасывает или выходит из диапазона, если pos1 >размер() или pos2 >размер().

    Возвращение: *это

  54. basic_string&insert(size_typepos,constCharT*s,size_typen);

    Требует: s указывает на массив по меньшей мере n элементов CharT и pos<= размер().

    : Заменяет строку, управляемую *этим, строкой размера длины () + n, первые элементы которой являются копией исходных элементов исходной строки, управляемой *этим, и следующие n элементов которой являются копией элементов в s, а оставшиеся элементы являются копией оставшихся элементов исходной строки, управляемой *этим.

    Бросок: Если выделение памяти выбрасывает, вылетает из диапазона, если pos >размер() или длина_ошибка, если размер() + n >макс_размер().

    Возвращается: *это

  55. basic_string&insert(size_typepos,constCharT*s);

    Требует: pos<= размер() и s указывает на массив по меньшей мере признаков:: длина(ы) + 1 элемент CharT

    Эффекты: Звонки вставить (позы, с, черты:: длина(ы)).

    Броски: Если выпадает выделение памяти, выйдите из диапазона, если pos >размер() длина_ошибка, если размер() >max_size() - Черты: длина

    Возвращение: *это

  56. Эффекты: Эквивалентность[en](pos, basic_string(n, c)).

    Броски:

    : *

    basic_string&insert(size_typepos,size_typen,CharTc);

    Эффекты: Эквивалент вставки (pos, basic_string(n, c)).

    Броски: Если выделение памяти отбрасывает, out_of_range, если pos >size() long_error, если size() >max_size() - n

    Возвращается: *это

    [ORIG_END] ->[ORIG_END] -->
  57. Требуется: p[p][p][en][en]

    [en][en]:

    Возвращение: Итератор, ___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

    [ORIG_END] -->
  58. iteratorinsert(const_iteratorp,size_typen,CharTc);

    Требуется: p - действительный итератор на *это.

    Эффекты: Вставляется n копий c перед символом, упомянутым p.

    Возвращение: итератор первого вставленного элемента или p, если n равно 0.

  59. template<typenameInputIter>
     iteratorinsert(const_iteratorp,InputIterfirst,InputIterlast);

    Требуется: p - действительный итератор на *это. [Первый, последний] является допустимым диапазоном.

    Эффекты: Эквивалент вставки (p - start(), basic_string(first, last)).

    Возвращение: итератор первого вставленного элемента или p, если первый == последний.

  60. voidpop_back()noexcept;

    Эффекты: Удалите последний элемент из контейнера.

    Бросок: Ничего.

    Сложность: Постоянное время.

  61. basic_string&erase(size_typepos=0,size_typen=npos);

    Требует: pos<= размер()

    Эффекты: Определяет эффективную длину xlen струны, подлежащей удалению, как меньшую из n и размер() - pos. Затем функция заменяет строку, управляемую *этим, строкой размера длины () - xlen, чьи первые элементы pos являются копией начальных элементов исходной строки, управляемой *этим, и чьи оставшиеся элементы являются копией элементов исходной строки, управляемой *этим началом в положении pos + xlen.

    Броски: out_of_range if pos >size().

    Возвращение: Это

  62. iteratorerase(const_iteratorp)noexcept;

    Эффекты: Удалите символ, упомянутый p.

    Бросает: Ничто

    Возвращается: Итератор, указывающий на элемент, непосредственно следующий за p, до стирания элемента. Если такой элемент не существует, конец () возвращается.

  63. iteratorerase(const_iteratorfirst,const_iteratorlast)noexcept;

    Требуется: первый и последний являются действительными итераторами на *это, определяющими диапазон [первый, последний].

    Эффекты: Удаляет персонажей в диапазоне [первый, последний].

    Бросает: Ничего

    Возвращение: Итератор, который указывает на элемент, на который указывает последний, прежде чем другие элементы будут стерты. Если такой элемент не существует, конец () возвращается.

  64. Эффекты:

    Бросок: Ничего.

    [ORIG_END] -->
  65. basic_string&replace(size_typepos1,size_typen1,constbasic_string&str);

    Требуется: pos1<= size().

    Эффекты: Звонки заменяются (pos1, n1, str.data(), str.size()).

    Бросает: если выделение памяти выбрасывает или выходит из диапазона, если pos1 >размер().

    Возвращение: *это

  66. basic_string&
    replace(size_typepos1,size_typen1,constbasic_string&str,
           size_typepos2,size_typen2);

    Требуется: pos1<= размер() и pos2<= размер().

    Эффекты: Определяет эффективную длину вставленной строки как меньшую из n2 и str.size() - pos2 и вызывает замену(pos1, n1, str.data() + pos2, rlen).

    Бросает: если выделение памяти выбрасывает, вылетает из диапазона, если pos1 >размер() или pos2 >размер().

    Возвращение: *это

  67. basic_string&
    replace(size_typepos1,size_typen1,constCharT*s,size_typen2);

    Требует: pos1<= размер() и s указывает на массив по меньшей мере n2 элементов CharT.

    Эффекты: Определяет эффективную длину xlen струны, подлежащей удалению, как меньшую из n1 и размер() - pos1.Если размер() - xlen >= max_size() - n2 бросает длину_error. В противном случае функция заменяет строку, управляемую *этим, строкой размера длины() - xlen + n2, чьи первые элементы pos1 являются копией начальных элементов исходной строки, управляемой *этим, чьи следующие элементы n2 являются копией исходных элементов n2 s, и чьи оставшиеся элементы являются копией элементов исходной строки, управляемой *этим началом в положении pos + xlen.

    Бросает: если распределение памяти выбрасывает, out_of_range, если pos1 >size() или long_error, если длина полученной строки превысит max_size()

    Возвращается: *это

  68. basic_string&replace(size_typepos,size_typen1,constCharT*s);

    Требует: pos1<= размер() и s указывает на массив по меньшей мере n2 элементов CharT.

    Эффекты: Определяет эффективную длину xlen струны, подлежащей удалению, как меньшую из n1 и размер() - pos1.Если размер() - xlen >= max_size() - n2 бросает длину_error. В противном случае функция заменяет строку, управляемую *этим, строкой размера длины() - xlen + n2, чьи первые элементы pos1 являются копией начальных элементов исходной строки, управляемой *этим, чьи следующие элементы n2 являются копией начальных элементов n2 s, и чьи оставшиеся элементы являются копией элементов исходной строки, управляемой *этим началом в положении pos + xlen.

    Бросает: если распределение памяти выбрасывает, out_of_range, если pos1 >размер() или длина_ошибка, если длина полученной строки превысит max_size()

    Возвращается: *это

  69. basic_string&replace(size_typepos1,size_typen1,size_typen2,CharTc);

    Требуется: pos1<= size().

    Эффекты: Эквивалент для замены (pos1, n1, basic_string(n2, c)).

    Бросает: если выделение памяти выбрасывает, out_of_range, если pos1 >размер() или длина_ошибка, если длина полученной строки превысит max_size()

    Возвращение: *это

  70. basic_string&
    replace(const_iteratori1,const_iteratori2,constbasic_string&str);

    Требует: [начало(), i1) и [i1,i2) являются действительными диапазонами.

    Эффекты: Звонки заменяют (i1 - start(), i2 - i1, str.)

    Бросает: если выделение памяти бросает

    Возвращение: *это

  71. basic_string&
    replace(const_iteratori1,const_iteratori2,constCharT*s,size_typen);

    Требует: [begin(),i1) и [i1,i2) являются действительными диапазонами и точками s для массива по меньшей мере n элементов

    Эффекты: Звонки заменяют (i1 - start(), i2 - i1, s, n).

    Бросает: если выделение памяти бросает

    Возвращение: *это

  72. basic_string&replace(const_iteratori1,const_iteratori2,constCharT*s);

    Требует: [начало(),i1) и [i1,i2) являются действительными диапазонами и точками s для массива по меньшей мере признаков:: длина(ы) + 1 элемент CharT.

    Эффекты: Звонки заменяют (i1 - start(), i2 - i1, s, черты::длина(ы)).

    Бросает: если выделение памяти бросает

    Возвращение: *это

  73. basic_string&
    replace(const_iteratori1,const_iteratori2,size_typen,CharTc);

    Требует: [начало(), i1) и [i1, i2) являются действительными диапазонами.

    Эффекты: Звонки заменяют (i1 - start(), i2 - i1, basic_string(n, c)).

    Броски: если выделение памяти бросает

    Возвращение: Это

  74. template<typenameInputIter>
     basic_string&
     replace(const_iteratori1,const_iteratori2,InputIterj1,InputIterj2);

    Требует: [begin(),i1), [i1,i2) и [j1,j2) являются действительными диапазонами.

    Эффекты: Звонки заменяют (i1 - start(), i2 - i1, basic_string(j1, j2)).

    Бросает: если выделение памяти бросает

    Возвращение: Это

  75. size_typecopy(CharT*s,size_typen,size_typepos=0)const;

    Требует: pos< = размер()

    : Определяет эффективную длину длинны строки для копирования, поскольку меньший из n и размер () - pos.s должен обозначать массив по меньшей мере элементов длинны. Затем функция заменяет строку, обозначенную s, строкой длины rlen, элементы которой являются копией строки, управляемой * этим началом в положении pos. Функция не добавляет нулевой объект к строке, обозначенной s.

    Бросает: если распределение памяти выбрасывает, вылетает из диапазона, если pos >размер().

    Возвращение: rlen

  76. voidswap(basic_string&x)noexcept(allocator_traits_type::propagate_on_container_swap::value||allocator_traits_type::is_always_equal::value));

    Эффекты: *Это содержит ту же последовательность символов, которая была в s, s содержит ту же последовательность символов, которая была в *это.

    Броски: Ничего (1990)

  77. constCharT*c_str()constnoexcept;

    Требуется: Программа не должна изменять значения, хранящиеся в массиве символов.

    Возвращение: Указатель p такой, что p + i == &operator[](i) для каждого i в [0, размер()].

    Сложность: Постоянное время.

  78. constCharT*data()constnoexcept;

    Требует: Программа не должна изменять значения, хранящиеся в массиве символов.

    Возвращение: Указатель p такой, что p + i == &оператор[](i) для каждого i в [0, размер()].

    Сложность: Постоянное время.

  79. size_typefind(constbasic_string&s,size_typepos=0)const;

    Эффекты: Определяет наименьшее положение xpos, если это возможно, так что оба из следующих условий получают: 19 pos<= xpos и xpos + str.size()<= size(); 2) черты::eq(at(xpos+I), str.at(I)) для всех элементов I строки, контролируемой str.

    Броски: Ничто

    Возвращение: xpos, если функция может определить такое значение для xpos. В противном случае, возвращает npos.

  80. size_typefind(constCharT*s,size_typepos,size_typen)const;

    Требует: s указывает на множество по меньшей мере n элементов CharT.

    Бросает: Ничто

    Возвращается: find(basic_string(s,n),pos).

  81. size_typefind(constCharT*s,size_typepos=0)const;

    Требует: s указывает на множество, по меньшей мере, признаков:: длина(ы) + 1 элемент CharT.

    Бросает: Ничто

    Возвращается: find(basic_string(s), pos).

  82. size_typefind(CharTc,size_typepos=0)const;

    Броски: Ничто

    Возвращается: find(basic_string(1,c), pos).

  83. size_typerfind(constbasic_string&str,size_typepos=npos)const;

    Эффекты: Определяет наивысшее положение xpos, если это возможно, так что оба из следующих условий получают: a) xpos<= pos и xpos + str.size()<= size(); b) черты::eq(at(xpos+I), str.at(I) для всех элементов I строки, контролируемой str.

    Броски: Ничто

    Возвращается: xpos, если функция может определить такое значение для xpos. В противном случае, возвращает npos.

  84. size_typerfind(constCharT*s,size_typepos,size_typen)const;

    Требует: s указывает на массив по меньшей мере n элементов CharT.

    Бросает: Ничто

    Возвращает: rfind (basic_string(s, n), pos).

  85. size_typerfind(constCharT*s,size_typepos=npos)const;

    Требует: pos<= размер() и s указывает на массив по меньшей мере признаков:: длина(ы) + 1 элемент CharT.

    Броски: Ничто

    Возвращение: rfind(basic_string(s), pos).

  86. size_typerfind(CharTc,size_typepos=npos)const;

    Бросает: Ничто

    Возвращается: rfind(basic_string(1,c),pos).

  87. size_typefind_first_of(constbasic_string&s,size_typepos=0)const;

    Эффекты: Определяет наименьшее положение xpos, если это возможно, так что оба из следующих условий получают: a) pos<= xpos и xpos< размер(); b) признаки::eq(at(xpos), str.at(I) для некоторого элемента I строки, управляемой str.

    Броски: Ничто

    Возвращается: xpos, если функция может определить такое значение для xpos. В противном случае возвращается npos.

  88. size_typefind_first_of(constCharT*s,size_typepos,size_typen)const;

    Требует: s указывает на массив по меньшей мере n элементов CharT.

    Броски: Ничто

    Возвращение: find_first_of(basic_string(s, n), pos).

  89. size_typefind_first_of(constCharT*s,size_typepos=0)const;

    Требует: s указывает на множество по меньшей мере признаков:: длина(ы) + 1 элементы CharT.

    Броски: Ничто

    Возвращение: find_first_of(basic_string(s), pos.

  90. size_typefind_first_of(CharTc,size_typepos=0)const;

    Требует: s указывает на множество по меньшей мере признаков:: длина(ы) + 1 элементы CharT.

    Броски: Ничто

    Возвращение: find_first_of(basic_string(1,c), pos.

  91. size_typefind_last_of(constbasic_string&str,size_typepos=npos)const;

    Эффекты: Определяет наивысшее положение xpos, если это возможно, так что оба из следующих условий получают: a) xpos<= pos и xpos< size(); b) черты::eq(at(xpos), str.at(I)) для некоторого элемента I строки, управляемой str.

    Броски: Ничто

    Возвращается: xpos, если функция может определить такое значение для xpos. В противном случае возвращается npos.

  92. size_typefind_last_of(constCharT*s,size_typepos,size_typen)const;

    Требуется: s указывает на массив по меньшей мере n элементов CharT.

    Бросает: Ничто

    Возвращается: find_last_of(basic_string(s, n), pos).

  93. size_typefind_last_of(constCharT*s,size_typepos=npos)const;

    Требует: s указывает на множество по меньшей мере признаков:: длина(ы) + 1 элементы CharT.

    Броски: Ничто

    Возвращение: find_last_of(basic_string(1,c),pos.

  94. size_typefind_last_of(CharTc,size_typepos=npos)const;

    Броски: Ничто

    Возвращение: find_last_of(basic_string(s), pos)

  95. size_typefind_first_not_of(constbasic_string&str,size_typepos=0)const;

    Эффекты: Определяет наименьшее положение xpos, если это возможно, так что оба из следующих условий получают: a) pos<= xpos и xpos< размер(); b) черты::eq(at(xpos), str.at(I)) для отсутствия элемента I строки, управляемой str.

    Броски: Ничто

    Возвращается: xpos, если функция может определить такое значение для xpos. В противном случае возвращается npos.

  96. size_typefind_first_not_of(constCharT*s,size_typepos,size_typen)const;

    Требует: s указывает на массив по меньшей мере признаков:: длина(ы) + 1 элемент CharT.

    Броски: Ничто

    Возвращение: find_first_not_of(basic_string(s, n), pos).

  97. size_typefind_first_not_of(constCharT*s,size_typepos=0)const;

    Требует: s указывает на множество по меньшей мере признаков:: длина(ы) + 1 элемент CharT.

    Броски: Ничто

    Возвращение: find_first_not_of(basic_string(s), pos)

  98. size_typefind_first_not_of(CharTc,size_typepos=0)const;

    Броски: Ничто

    Возвращение: find_first_not_of(basic_string(1, c), pos).

  99. Эффекты: xpos<= pos и xpos< размер(); b) черты::eq(at(xpos), str.at(I) для элемента I строки, контролируемой стр.

    Бросает: Ничего

    Возвращение: xpos, xpos, xpos.

    [ORIG_END] -->
  100. size_typefind_last_not_of(constCharT*s,size_typepos,size_typen)const;

    Требует: s указывает на массив по меньшей мере n элементов CharT.

    Бросает: Ничто

    Возвращается: find_last_not_of(basic_string(s, n), pos).

  101. size_typefind_last_not_of(constCharT*s,size_typepos=npos)const;

    Требует: s указывает на множество по меньшей мере признаков:: длина(ы) + 1 элементы CharT.

    Броски: Ничто

    Возвращение: find_last_not_of(basic_string(s), pos.

  102. Броски: Ничто

    Возвращение: find_last_not_of(basic_string(1, c), pos).

    [ORIG_END] -->
  103. basic_stringsubstr(size_typepos=0,size_typen=npos)const;

    Требуется: Требуется: pos<= размер()

    Эффекты: Определяет эффективную длину струны для копирования как меньшую из n и размер() - pos.

    Броски: Если выделение памяти выбрасывает или выходит из диапазона, если pos >размер().

    Возвращение: basic_string(data()+pos,rlen).

  104. intcompare(constbasic_string&str)const;

    Эффекты: Определяет эффективную длину длинны строки для копирования как меньшую по размеру () и размеру (). Затем функция сравнивает две строки, вызывая черты::compare(data(), str.data(), rlen).

    Бросает: Ничто

    Возвращается: Ненулевой результат, если результат сравнения ненулевой. В противном случае возвращает значение< 0, если размер()< str.size(), 0, если размер() == str.size(), и значение >0, если размер() >str.size()

    .
  105. intcompare(size_typepos1,size_typen1,constbasic_string&str)const;

    Требуется: pos1<= размер()

    : Определяет эффективную длину длинны строки для копирования как меньшую из

    Бросок: out_of_range, если pos1 >размер()

    Возвращение:basic_string(*this,pos1,n1).compare(str).

  106. intcompare(size_typepos1,size_typen1,constbasic_string&str,
               size_typepos2,size_typen2)const;

    Требуется: pos1<= размер() и pos2<= размер()

    : Определяет эффективную длину длинны строки для копирования как меньшую из

    Бросок: out_of_range, если pos1 >размер() или pos2 >размер()

    Возвращение: basic_string(*this, pos1, n1).compare(basic_string(str, pos2, n2)).

  107. intcompare(constCharT*s)const;

    Броски: Ничто

    Возвращение: сравните [базовая_струна(ы)].

  108. Требуется: pos1 >размер() и s s s s s CharT.

    Бросает: out_of_range, если pos1 >size()

    Возврат: basic_string(*This, pos, n1).compare(basic_string(s, n2)).

    [ORIG_END] -->
  109. intcompare(size_typepos1,size_typen1,constCharT*s)const;

    Требует: pos1 >размер() и s указывает на массив, по меньшей мере, признаков:: длина(ы) + 1 элемент CharT.

    Броски: out_of_range, если pos1 >размер()

    Возвращение: basic_string(*this, pos, n1).compare(basic_string(s, n2).


PrevUpHomeNext

Статья Class template basic_string раздела The Boost C++ Libraries BoostBook Documentation Subset Boost.Container Header Reference может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Boost.Container Header Reference ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 09:21:44/0.039252996444702/1