Читать «С++ для "чайников" .» онлайн - страница 217
Стефан Рэнди Дэвис
«Тип size_t определён в заголовочных файлах STL как целое число, которое в состоянии работать с массивом максимально допустимого на вашем компьютере размера. Обычно это тип long. Использование типа size_t связано с вопросами переносимости исходного кода между различными программно-аппаратными платформами. Visual С++ .NET сгенерирует предупреждение, если вместо size_t вы используете int.»
[]
Функция insertPhrase( ) использует метод find( ) для поиска точки вставки в строку, после чего метод erase( ) удаляет метку вставки <ip> из строки, а метод insert( ) вставляет новую строку в средину старой.
Вот как выглядит вывод данной программы:
string1 + string2 = string1 string2
<The phrase> минус пробелы = <Thephrase>
Stephen <ip> Davis -> Stephen Randall Davis
Press any key to continue...
_________________
319 стр. . Стандартная библиотека шаблонов
►Контейнер list...320
STL предоставляет программисту массу контейнеров — гораздо больше, чем я могу описать в одной главе. Здесь я попытаюсь хотя бы вкратце познакомить вас с двумя из них.
Контейнер STL list хранит объекты связанными наподобие блоков детского конструктора. Объекты могут быть связаны в любом порядке, что делает данный контейнер идеальным для вставки, сортировки, объединения списков и прочих операций над объектами. Приведённая далее программа демонстрирует использование list для сортировки набора имён .
/* STLList — использование контейнера list для */
/* ввода и сортировки строк */
#include <list>
#include <string>
#include <cstdio>
#include <cstdlib>
#include <iostream>
/* Объявление списка строк */
using namespace std ;
list <string> 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 стр. . Полезные особенности
В этом примере определена переменная names, являющаяся списком объектов string. Программа начинает работу с чтения вводимого пользователем списка имён . Каждое введённое имя добавляется к концу списка с помощью метода push_back( ). Цикл завершается, когда пользователь вводит имя "х". Затем список имён сортируется при помощи метода sort( ) .