Программирование >>  Обобщенные обратные вызовы 

1 ... 72 73 74 [ 75 ] 76 77 78 ... 84


Практичнее по возможности разбивать обобщенные компоненты на части.

> Рекомендация

Пользуйтесь идиомой один класс (или функция) - одна задача .

Где это возможно - предпочтительно использовать функции, которые не являются членами и друзьями.

Остальная часть данной задачи просто дает нам дополнительное подтверждение приведенной рекомендации.

Класс string

2. Перечислите поименно все функции-члены std: :basic string .

Это дсйствигслыю длинный список...

С учетом конструкторов в классе string не менее 103 функций-членов. Честно! Если это не монолит, то тогда я уж и не знаю, как он должен выглядеть...

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

Вдохните поглубже и задержите дыхание на время чтения ISO/1EC 14882;2003(Е) .

namespace std {

tempiate<class сНагт, class traits = char traits<charT>, class Allocator = al1ocator<charT> > class basic string {

: некоторые typedef :

explicit basic stringCconst Allocator& a = AllocatorO); basi c st ri ng(const basic string& str, si ze type pos = 0,

size type n = npos,

const Allocators a = AllocatorO); basicstri ng(const charT* s, size type n,

const Allocators a = AllocatorO) : basic stringCconst charT* s,

const Allocators a = AllocatorO); basic string(size type n, charT c,

const Allocators a = AllocatorO); tempiate<class inputiterator>

basic string(inputIterator begin, Inputlterator end, const Allocators a = AllocatorO); ~basic stringO;

basic strings operator=(const basic string& str); basic strings operator=(const charT* s); basic strings operator=(charT c); iterator begin(); const iterator beginO const; iterator end(); const iterator end() const; reverse iterator rbeginO; const reverse iterator rbeginO const; reverse iterator rendO; const reverse iterator rendO const; size type sizeO const; size type lengthO const; size...type max size() const; void resize(size type n, charT c); void resize(size type n); size type capacity() const;

Толстый TOM, известный также как стандарт ISO С++ [С++03]. Задача 37. Ослабленная монолитность. Часть 1: взгляд Hastd::string 243



void reserve(size type res arg = 0);

void clearO;

bool empty О const;

const reference operator[](sizetype pos) const; reference operator[](size type posj; const reference at(size type n) const;

reference at(size type n);

basic string& operator+=(const basic .string& str); basic string& operator+=(const charx* s); basic string& operator+=(charT c); basic string& append(const basic string& str); basic string(& append(const basi c stri ng& str,

size type pos, size type n); basic string& append(const charT* s, size type n); basic string& append(const charT* s); basiestring& append(si ze type n, charT c); tempiate<class lnputlterator>

basic string& append(Inputiterator fi rst, inputlterator last); void push back(const charT); basic string& assign(const basic string&); basic string& assign(const basic string& str,

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); tempiate<class inputiterator>

basic string& assign(Inputlterator fi rst, inputlterator last); basic string& insert(size type posl,

const basic string& str); basic string& insert(size type posl,

const basic string& str, size type pos2, size type n); basic string& insert(size type pos, const спагт* 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 c); void insert(iterator p, size type n, charT c); tempiate<class inputiterator> void insert(iterator p, inputlterator fi rst, Inputlterator last);

Кажется, no пути есть маленький карман с воздухом. Не всплывайте - это только полпути! Сделайте очередной вдох - и:

basic string& erase(size type pos = О,

size type n = npos); iterator erase(iterator position); iterator erase(iterator first, iterator last); basic string& replace(size type posl, size tyne nl,

const basic string& str); basic string& replace(size type posl, stze type nl,

const basic string& str,

size type pos2, size type n2); basic string& replace(size type pos, size type nl,

const charT* s, size type n2); basic string& replace(size type pos, size type nl,

const charT* s); basic string& replace(size type pos, size type nl,

size type n2, charT c); basic string& replace(iterator i1, iterator i2,

const basic string& str); basiest ring* replace(iterator il, i terator i2,



const charT* s, size type n); basic string& replace(iterator i1, iterator i2,

const charT* s); basic string& replace(iterator il, iterator i2,

size type n, charT c); tempiate<class inputlterator>

basic string& replace(iterator il, iterator i2,

inputlterator ql, Inputlterator ]2); size type copy(charT* s, size type n,

size type pos = o) const; void swapCbasic string<charT,traits.Allocator>&); const charT* c strC) const; explicit

const charT* dataO const; allocater type get allocatorC) const; size type find (const basic strinq& str,

si2e type pos = 0) const; size type find (const charT* s, size type pos,

si2e type n) const; s1ze type find (const charT* s,

si2e type pos = 0) const; size type find (charT c, size type pos = 0) 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; size type find fi rst of(const basic strinq& str,

size type pos = 0) const; size type find fi rst of(const спагт* s, size type pos,

size type n) const; size type find first of(const charT* s,

size type pos = 0) const; size type find fi rst of(charT с,

size type pos = 0) 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; size type find first not of(const basic string& str,

size type pos = 0) const; size type find fi rst not of(const charT* s,

si ze type pos, size type n) const; si ze 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 last not of (const basic string& str,

size type pos = npos) const; si ze 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; basic string substr(size type pos = 0,

size type n = npos) const;

a 37. Ослабленная монолитность. Часть 1: взгляд Hastd;:stnng



1 ... 72 73 74 [ 75 ] 76 77 78 ... 84

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика