|
Программирование >> Обобщенные обратные вызовы
Практичнее по возможности разбивать обобщенные компоненты на части. > Рекомендация Пользуйтесь идиомой один класс (или функция) - одна задача . Где это возможно - предпочтительно использовать функции, которые не являются членами и друзьями. Остальная часть данной задачи просто дает нам дополнительное подтверждение приведенной рекомендации. Класс 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
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |