Стефан Дэвис - С++ для чайников .

Тут можно читать онлайн Стефан Дэвис - С++ для чайников . - бесплатно полную версию книги (целиком) без сокращений. Жанр: sci_tech, издательство Издательский дом Вильямс. Компьютерное издательство Диалектика, год 2007. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    С++ для чайников .
  • Автор:
  • Жанр:
  • Издательство:
    Издательский дом Вильямс. Компьютерное издательство Диалектика
  • Год:
    2007
  • Город:
    Москва
  • ISBN:
    0-7645-6852-3, 978-5-8459-0723-3
  • Рейтинг:
    4/5. Голосов: 11
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Стефан Дэвис - С++ для чайников . краткое содержание

С++ для чайников . - описание и краткое содержание, автор Стефан Дэвис, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
empty-line
1
empty-line
4

С++ для чайников . - читать онлайн бесплатно полную версию (весь текст целиком)

С++ для чайников . - читать книгу онлайн бесплатно, автор Стефан Дэвис
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

string removeSpaces( string s )

{

/* Находим смещение первого пробела; продолжаем поиск до тех пор, пока не сможем найти больше ни одного пробела */

size_t offset ;

while ( ( offset = s.find( " " ) ) != -1 )

{

/* Удаляем найденный пробел */

s.erase( offset , 1 ) ;

}

return s ;

}

/* insertPhrase — вставка фразы в том месте, где находится метка */

string insertPhrase( string source )

{

_________________

318 стр. Часть 5. Полезные особенности

size_t offset = source.find( "" ) ;

if ( offset != -1 )

{

source.erase( offset , 4 ) ;

source.insert( offset , "Randall" ) ;

}

return source ;

}

int main( int argc , char* pArgs[ ] )

{

setlocale ( LC_ALL , ".1251" ) ; /* печать кириллицы */

/* Создаём строку, которая представляет собой конкатенацию двух меньших строк */

cout << "string1 + string2 = "

<< concat( "string1 " , "string2" )

<< endl ;

/* Создаём тестовую строку и удаляем в ней все пробелы */

string s2( "The phrase" ) ;

cout << "<" << s2 << "> минус пробелы = <"

<< removeSpaces( s2 ) << ">" << endl ;

/* Вставляем фразу в средину существующей строки */

string s3 = "Stephen Davis" ;

cout << s3 + " -> " + insertPhrase( s3 ) << endl ;

/* Пауза для того, чтобы посмотреть на результат работы программы */

system( "PAUSE" ) ; return 0 ;

}

Оператор operator+( ) выполняет конкатенацию строк, которая раньше осуществлялась при помощи функции concatCharacterString( ) .

Функция removeSpaces( ) удаляет все найденные пробелы из строки при помощи операции string::find( ) , которая возвращает смещение первого найденного пробела. После того, как положение пробела в строке определено, функция-член erase( ) удаляет его из строки. Метод find( ) возвращает смещение найденного пробела от начала строки, или -1, если он не найден.

Типsizet определён в заголовочных файлах STL как целое число которое в - фото 337

«Типsize_t определён в заголовочных файлах STL как целое число, которое в состоянии работать с массивом максимально допустимого на вашем компьютере размера. Обычно это типlong . Использование типаsize_t связано с вопросами переносимости исходного кода между различными программно-аппаратными платформами. Visual С++ .NET сгенерирует предупреждение, если вместоsize_t вы используетеint

[ Советы ]

Функция insertPhrase( ) использует метод find( ) для поиска точки вставки в строку, после чего метод erase( ) удаляет метку вставки из строки, а метод insert( ) вставляет новую строку в средину старой.

Вот как выглядит вывод данной программы:

string1 string2 string1 string2 минус пробелы Stephen Davis - фото 338

string1 + string2 = string1 string2

минус пробелы =

Stephen Davis -> Stephen Randall Davis

Press any key to continue...

_________________

319 стр. Глава 28. Стандартная библиотека шаблонов

►Контейнер list...320

STL предоставляет программисту массу контейнеров — гораздо больше, чем я могу описать в одной главе. Здесь я попытаюсь хотя бы вкратце познакомить вас с двумя из них.

Контейнер STL list хранит объекты связанными наподобие блоков детского конструктора. Объекты могут быть связаны в любом порядке, что делает данный контейнер идеальным для вставки, сортировки, объединения списков и прочих операций над объектами. Приведённая далее программа демонстрирует использование list для сортировки набора имён .

/* STLList — использование контейнера list для */

/* ввода и сортировки строк */

#include

#include

#include

#include

#include

/* Объявление списка строк */

using namespace std ;

list names ;

int main( int argc , char* pArgs[ ] )

{

setlocale ( LC_ALL , ".1251" ) ; /* печать кириллицы */

/* Ввод строк имён */

cout << "Введите имя ( или х для завершения )"

<< endl ;

while ( true )

{

string name ;

cin >> name ;

if ( ( name.compare( "x" ) == 0 ) ||

( name.compare( "X" ) == 0 ) )

{

break ;

}

names.push_back( name ) ;

}

/* Сортируем список */

names.sort( ) ;

/* Выводим отсортированный список */

/* Выводим имена, пока список не опустеет */

cout << "\nОтсортированный список:" << endl ;

while ( !names.empty( ) )

{

/* Первое имя в списке */

string name = names.front( ) ;

cout << name << endl ;

/* Удаляем это имя из списка */

names.pop_front( ) ;

}

/* Пауза для того, чтобы посмотреть на результат работы программы */

system( "PAUSE" ) ; return 0 ;

}

_________________

320 стр. Часть 5. Полезные особенности

В этом примере определена переменная names , являющаяся списком объектов string . Программа начинает работу с чтения вводимого пользователем списка имён . Каждое введённое имя добавляется к концу списка с помощью метода push_back( ) . Цикл завершается, когда пользователь вводит имя " х ". Затем список имён сортируется при помощи метода sort( ) .

Программа выводит отсортированный список имён , удаляя объекты с начала списка до тех пор, пока он не станет пустым.

Вот пример вывода данной программы.

Введите имя или х для завершения Igor Ira Anton х - фото 339

Введите имя ( или х для завершения )

Igor

Ira

Anton

х

Отсортированный список:

Anton

Igor

Ira

Press any key to continue...

Контейнер list предоставляет программисту массу различных возможностей, простейшие из которых — insert , swap и erase . Контейнер также позволяет программисту осуществлять итерации по списку с выполнением пользовательской функции над каждым элементом списка.

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

►Итераторы...321

В представленной в предыдущем разделе программе для прохода по списку использован деструктивный метод: метод pop_front( ) позволяет пользователю пройти по всему списку, удаляя всякий раз первый объект в списке.

Проход по массиву обычно осуществляется программистом с использованием индекса массива — но такой способ в случае списка неприменим. Можно представить решение, основанное на использовании методов типа getFirst( ) и getNext( ) , однако разработчики STL хотели обеспечить обобщённый метод прохода по элементам контейнера, который работал бы для любого вида контейнера. Этой цели служат итераторы STL.

Итератор представляет собой объект, который указывает на объекты, содержащиеся в контейнере. В общем случае итераторы поддерживают следующие функции.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Стефан Дэвис читать все книги автора по порядку

Стефан Дэвис - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




С++ для чайников . отзывы


Отзывы читателей о книге С++ для чайников ., автор: Стефан Дэвис. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x